Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

From CircleCI to GitHub Actions #22

Merged

Conversation

arcticicestudio
Copy link
Contributor

Resolves #21

>>> Previous Project State

The previous project setup used CircleCI (1) with API version 2.x (2) as
CI/CD service. This worked great, but also came with the disadvantage of
being decoupled from the repository.

During "GitHub Universe 2018", the awesome new GitHub Actions (3)
feature was introduced and launched as closed beta (4).
Luckily "Arctic Ice Studio" was given access in order to test all the
great possibilities. During the GitHub Actions stream
"Now with built-in CI/CD!" (live from GitHub HQ) (5) the "Actions"
update was announced and previewed showing the expansion to use
"GitHub Actions" as CI/CD service described as
"fast CI/CD for any OS,any language, and any cloud" (6).

See the official GitHub Actions documentation (7) for details about
setups, features, the configuration API and many more!

>>> Project Integration

The switch from "CircleCI" to "GitHub Actions" brings many advantages
like a "close-to-the-source" development pipeline. Having the code and
automated pipelines/workflows in one place is worth a lot. This also
comes along with the perfect integrations into GitHub itself like status
reports on PRs and many more possibilities like the customization and
triggering of workflows through webhooks (8) for almost every event that
can occur in a repository/issue/PR etc.

To integrate "GitHub Actions" the previous "CircleCI" build
configuration (9) was adapted and adjusted. The official
`starter-workflows` (10) were used as inspiration as well as showcase
projects like the Yarn "Berry" (Yarn v2) (11) also presented during the
announcement livestream.

Next to the `starter-workflows` repository the official "GitHub Actions"
documentations (7) were the main source of information to set up the
project workflows.

Since "GitHub Actions" are still in closed/limited public beta,
there is no support for SVG badges through shields.io.
Anyway, there are (currently undocumented) official badges provided by
the GitHub API that are now used until "Actions" go GA and shields.io
implemens support for it:
`https://github.com/{owner}/{repo}/workflows/{workflow_name}/badge.svg`

References:
  (1) https://circleci.com
  (2) https://circleci.com/docs
  (3) https://github.com/features/actions
  (4) https://github.blog/2018-10-17-action-demos
  (5) https://www.youtube.com/watch?v=E1OunoCyuhY
  (6) https://github.blog/2019-08-08-github-actions-now-supports-ci-cd
  (7) https://help.github.com/en/categories/automating-your-workflow-with-github-actions
  (8) https://help.github.com/en/articles/events-that-trigger-workflows#webhook-events
  (9) https://github.com/arcticicestudio/styleguide-javascript/blob/ac611f7e342e8475767b03d95fa174aea65b39e5/.circleci/config.yml
  (10) https://github.com/actions/starter-workflows
  (11) https://github.com/yarnpkg/berry/tree/master/.github/workflows

GH-21
The CI workflow used a "strategy" with four different Node.js versions
which is not necessary to only build the docs.
This has been reduced to only build them once using the currently
latest Node.js version 12.x.

GH-21
These base actions are maintained by GitHub and should be safe to use
the `master` branch instead of an version tag. This prevents the usage
of outdated actions when the workflow is not updated on a regular basis.

GH-21
@arcticicestudio arcticicestudio force-pushed the feature/gh-21-from-circle-ci-to-github-actions branch from af8e3c3 to 99549c5 Compare August 21, 2019 18:53
@arcticicestudio arcticicestudio merged commit c7d663e into develop Aug 21, 2019
@arcticicestudio arcticicestudio deleted the feature/gh-21-from-circle-ci-to-github-actions branch August 21, 2019 19:03
@arcticicestudio arcticicestudio removed their assignment Aug 21, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

From CircleCI to GitHub Actions
2 participants