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

Commits on Aug 21, 2019

  1. 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`
    
    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 committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    ae21967 View commit details
    Browse the repository at this point in the history
  2. Only build docs one time on latest Node.js version via CI workflow

    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 committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    a2b66b4 View commit details
    Browse the repository at this point in the history
  3. Use master branch for official GitHub Actions

    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 committed Aug 21, 2019
    Configuration menu
    Copy the full SHA
    99549c5 View commit details
    Browse the repository at this point in the history