Skip to content

Github Actions

JuanMa Garrido edited this page May 21, 2021 · 5 revisions

Github Actions are a useful tool to maintain the sanity and healthy of a project code. In their own words, they allow you to

Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. You can discover, create, and share actions to perform any job you'd like, including CI/CD, and combine actions in a completely customized workflow.

They can be trigered at different points (whenever a PR is opened, every hour, ...) and they can run different workflows to do things like: run tests, check coverage, check the performance of a site, etc...

In Frontity, there are Github Actions triggered mostly when:

  • A PR is created or updated
  • A merge is done on dev branch
  • A merge is done on master branch

In this repository, the following Github Actions are defined in the folder .github/workflows:

Name File What it does When is trigerred
cli e2e cli-e2e.yml Run e2e tests for the CLI, both in the filesystem (for Ubuntu, Windows and macOS) and in a docker container. Whenever a PR is opened or updated
deploy production deploy-production.yml Deploy the projects to production, like https://mars.frontity.org. When code is merged to master
e2e browserstack (dev) e2e-bs-dev.yml Run the E2E Cypress tests in the BrowserStack cloud using the old versions of Edge, Firefox, and Chrome. When code is merged to dev
e2e browserstack e2e-bs-pr.yml Run the E2E Cypress tests in the BrowserStack cloud using the latest versions of Edge and Firefox. When a PR is opened or updated
e2e gh actions e2e-gh-actions.yml Run the E2E Cypress tests using the latest version of Chrome. It also runs the E2E test that require a WordPress instance. When a PR is opened or updated
ESLint eslint.yml Run eslint against the changed files in a PR. ESLint issues are annotated inline on the PR diff. When a PR is opened or updated
Lighthouse lighthouse.yml Deploy the projects to staging URLs and audit them using Lighthouse. When a PR is opened or updated
Check PR tasks pull-requests.yml Check that the tasks defined in the PR description are complete. When the PR description is opened or edited
Release release.yml Create a PR to prepare a release, modifying versions and changelogs with the correct information. Once the PR is merged, it publishes the packages to npm. When code is merged to master
BrowserStack Selenium Module selenium-module.yml Run the E2E Selenium tests in the BrowserStack cloud using old browsers that support Proxy and modules. When code is merged to dev
BrowserStack Selenium Proxy selenium-proxy.yml Run the E2E Selenium tests in the BrowserStack cloud using old browsers that support Proxy but not modules. When code is merged to dev
BrowserStack Selenium SSR selenium-ssr.yml Run the E2E Selenium tests in the BrowserStack cloud using old browsers that don't support Proxy nor modules. When code is merged to dev
unit tests unit-tests.yml Run all the Unit Tests. When a PR is opened or updated