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 #21

Closed
arcticicestudio opened this issue Aug 21, 2019 · 0 comments · Fixed by #22
Closed

From CircleCI to GitHub Actions #21

arcticicestudio opened this issue Aug 21, 2019 · 0 comments · Fixed by #22

Comments

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Aug 21, 2019

Project State

The current project setup uses CircleCI with API version 2.x as CI/CD service. This works great, but also comes with the disadvantage of being decoupled from the repository.

The GitHub Actions CI/CD UI

During GitHub Universe 2018, the awesome new GitHub Actions feature was introduced and launched as closed beta. 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) 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“.

Live logs showing real-time feedback

See the official GitHub Actions documentation 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 and smooth integrations into GitHub platform and page itself like status reports on PRs and many more possibilities like the customization and triggering of workflows through webhooks for almost every event that can occur in a repository/issue/PR etc.

To integrate GitHub Actions the current CircleCI build configuration will be adapted and adjusted. The official starter-workflows can be used as inspiration as well as showcase projects like Yarn Berry (Yarn v2) also presented during the announcement livestream.

Next to the starter-workflows repository the official GitHub Actions documentation will be the main source of information to set up the project workflows.

GitHub Actions starter workflows based on the epository languages

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'll be used until Actions goes GA_ and shields.io implements support for it: https://github.com/{owner}/{repo}/workflows/{workflow_name}/badge.svg

@arcticicestudio arcticicestudio added this to the 0.8.0 milestone Aug 21, 2019
@arcticicestudio arcticicestudio self-assigned this Aug 21, 2019
arcticicestudio added a commit that referenced this issue Aug 21, 2019
>>> 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
arcticicestudio added a commit that referenced this issue Aug 21, 2019
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
arcticicestudio added a commit that referenced this issue Aug 21, 2019
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 added a commit that referenced this issue Aug 21, 2019
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 added a commit that referenced this issue Aug 21, 2019
Migrate from "CircleCI" to "GitHub Actions"

>>> 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`

Since the base actions are maintained by GitHub it 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.

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

Resolves GH-21
@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 a pull request may close this issue.

1 participant