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

Standardise approach to CI/CD #4

Closed
dselman opened this issue Jul 9, 2020 · 10 comments
Closed

Standardise approach to CI/CD #4

dselman opened this issue Jul 9, 2020 · 10 comments

Comments

@dselman
Copy link
Sponsor Collaborator

dselman commented Jul 9, 2020

Accord Project currently uses the following CI/CD tools:

Many of the projects use Travis to run tests and to publish code artefacts when a GitHub release is created. For example, pushing the VSCode extension to the VSCode extension marketplace.

We have also been experimenting with GitHub Actions.

@irmerk
Copy link
Member

irmerk commented Jul 20, 2020

Looking at all three, I get the impression that CircleCI has the best option for open source.

@jeromesimeon
Copy link
Member

Looking at all three, I get the impression that CircleCI has the best option for open source.

I really like CircleCI (better machines, more readable logs, longer builds), but when I had checked some months ago I shied away from it because I wasn't sure if we could port our deploy scripts (or how hard it would be to do). It's also a bit less mainstream, so there is a question of long term support.

@jeromesimeon
Copy link
Member

A proposed resolution to this: switch to GitHub Actions.
A first PR showing how to do so is available for review here: accordproject/concerto#219

A few notes:

  • Appears much faster than TravisCI
  • Much simpler scripts, should help with maintenance
  • Still need review & test on an actual versioned release (only timestamped release has been tested so far)
  • Still need to try and switch the Ergo compiler building process (currently in CircleCI) to GitHub Actions as well

@jeromesimeon
Copy link
Member

We're ready to move to GitHub Actions as a replace meant for CircleCI. It has been used and validated on the latest https://github.com/accordproject/concerto/releases/tag/v1.0.0-alpha.2 release.

Still to do:

  • Migrate all the other repos, and disable Travis
  • Migrate the Ergo compiler build from source from CircleCI

@irmerk
Copy link
Member

irmerk commented Jan 29, 2021

@jeromesimeon I'd love to do at least one of these migrations. The list as I can think of it:

  • ergo
  • cicero
  • markdown-transform
  • web-components
  • cicero-vscode-extension
  • cicero-template-library
  • techdocs

Ones that seem to not use Travis or Circle:

  • techdocs
  • template-studio
  • models

Care to pair on one together, then I can do web-components?

@martinhalford
Copy link
Member

Now with Maintainers. Leaving open for PRs.

@jeromesimeon
Copy link
Member

jeromesimeon commented Mar 16, 2021

@jeromesimeon I'd love to do at least one of these migrations. The list as I can think of it:

  • ergo
  • cicero
  • markdown-transform
  • web-components
  • cicero-vscode-extension
  • cicero-template-library
  • techdocs

Ones that seem to not use Travis or Circle:

  • techdocs
  • template-studio
  • models

Care to pair on one together, then I can do web-components?

The official list based on Travis itself:

  • concerto
  • ergo
  • cicero
  • markdown-transform
  • web-components
  • cicero-vscode-extension
  • cicero-template-library

@jeromesimeon
Copy link
Member

jeromesimeon commented Mar 16, 2021

A checklist for switching from TravisCI to GitHub Actions:

Preparation

  • Decide on node.js version strategy for AP (currently we are on node 10 but some projects seem to think otherwise)
  • Decide on build policy: all branches and PRs? only master? only PRs on master? what do we publish?
  • Consolidate & complete concerto switch to GitHub actions (notably consider recent improvements / changes in cicero)

Switch Projects

  • Concerto chore(CI) Align github workflows with cicero concerto#236
    • Remove secrets from Travis (for AP maintainers: in Travis Repository Settings)
    • Disable Travis in the configuration (for AP maintainers: Travis Personal Profile > Settings > Accord Project
    • Remove .travis.yml and .travis directories in repo
    • Add .github/workflows directory based on those in ./concerto/.github/workflows
    • Remove scripts in ./scripts replace by those found in ./concerto/scripts
    • Fix package.json notable adjustments: remove some of the old scripts, make sure code coverage works
    • Test build on PR with timestamps
    • Test build on GitHub release with version number
    • Update GitHub "branch protection" rules to point to the new workflows instead of Travis
  • Cicero fix(CI) Align GitHub workflows, remove old scripts template-archive#622
    • Investigate build failure on Windows. This isn't specific to GitHub Actions Build fails on Windows template-archive#628
    • Remove secrets from Travis (for AP maintainers: in Travis Repository Settings)
    • Disable Travis in the configuration (for AP maintainers: Travis Personal Profile > Settings > Accord Project
    • Remove .travis.yml and .travis directories in repo
    • Add .github/workflows directory based on those in ./concerto/.github/workflows
    • Remove scripts in ./scripts replace by those found in ./concerto/scripts
    • Fix package.json notable adjustments: remove some of the old scripts, make sure code coverage works
    • Test build on PR with timestamps
    • Test build on GitHub release with version number
    • Update GitHub "branch protection" rules to point to the new workflows instead of Travis
  • Ergo Migrate CI/CD to GitHub Actions ergo#793
    • Remove secrets from Travis (for AP maintainers: in Travis Repository Settings)
    • Disable Travis in the configuration (for AP maintainers: Travis Personal Profile > Settings > Accord Project
    • Remove .travis.yml and .travis directories in repo
    • Add .github/workflows directory based on those in ./concerto/.github/workflows
    • Remove scripts in ./scripts replace by those found in ./concerto/scripts
    • Fix package.json notable adjustments: remove some of the old scripts, make sure code coverage works
    • Test build on PR with timestamps
    • Test build on GitHub release with version number
    • Update GitHub "branch protection" rules to point to the new workflows instead of Travis
  • Markdown Transform chore(build) Adjust GitHub workflows based on latest in Concerto markdown-transform#365
    • Remove secrets from Travis (for AP maintainers: in Travis Repository Settings)
    • Disable Travis in the configuration (for AP maintainers: Travis Personal Profile > Settings > Accord Project
    • Remove .travis.yml and .travis directories in repo
    • Add .github/workflows directory based on those in ./concerto/.github/workflows
    • Remove scripts in ./scripts replace by those found in ./concerto/scripts
    • Fix package.json notable adjustments: remove some of the old scripts, make sure code coverage works
    • Test build on PR with timestamps
    • Test build on GitHub release with version number
    • Update GitHub "branch protection" rules to point to the new workflows instead of Travis
  • Web Components Migrate CI/CD to GitHub Actions web-components#235
    • Remove secrets from Travis (for AP maintainers: in Travis Repository Settings)
    • Disable Travis in the configuration (for AP maintainers: Travis Personal Profile > Settings > Accord Project
    • Remove .travis.yml and .travis directories in repo
    • Add .github/workflows directory based on those in ./concerto/.github/workflows
    • Remove scripts in ./scripts replace by those found in ./concerto/scripts
    • Fix package.json notable adjustments: remove some of the old scripts, make sure code coverage works
    • Test build on PR with timestamps
    • Test build on GitHub release with version number
    • Update GitHub "branch protection" rules to point to the new workflows instead of Travis
  • Cicero VSCode Extension Migrate CI/CD to GitHub Actions vscode-extension#78
  • Cicero Template Library Migrate CI/CD to GitHub Actions cicero-template-library#379

Cleanup

  • Remove all Travis dependencies in org (apps, org access, etc)

@rkotangoor
Copy link

@jeromesimeon I'd love to do at least one of these migrations. The list as I can think of it:

  • ergo
  • cicero
  • markdown-transform
  • web-components
  • cicero-vscode-extension
  • cicero-template-library
  • techdocs

Ones that seem to not use Travis or Circle:

  • techdocs
  • template-studio
  • models

Care to pair on one together, then I can do web-components?

The official list based on Travis itself:

  • concerto
  • ergo
  • cicero
  • markdown-transform
  • web-components
  • cicero-vscode-extension
  • cicero-template-library

from this list is there anything I can pick up? @jeromesimeon or @irmerk? Please let me know if you are okay pairing on web-components @irmerk

@jeromesimeon
Copy link
Member

This item has been completed:

  1. All projects have been migrated to GitHub actions
  2. All references to previous CI service (Travis) have been removed
  3. Travis access to AP repositories and secrets in Travis have been removed
  4. All the new GitHub actions scripts have been tested and work for both development/testing and for publication of new releases (Tested in the recent 0.22 release).

Ergo still uses CircleCI for "build from source" jobs, but I believe this is fine and separate migration can be considered in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants