-
Notifications
You must be signed in to change notification settings - Fork 2
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
Migrate from circle ci to github actions #129
Conversation
38d7e61
to
e719d8a
Compare
3dfa38d
to
a9b07de
Compare
921176d
to
95b6b15
Compare
9daaef2
to
d15314f
Compare
3621786
to
affc13d
Compare
affc13d
to
c78d20a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job! I left some small comments. As for the service account for CD we will most likely have to update it, but I think there is some work to be done in terraform since the default name is "gh-ci-..."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I would still get Antoine feedback/review for the release workflow and the version update since he is the expert on it ;)
78ce374
to
e837e91
Compare
e837e91
to
0f5a343
Compare
This PR migrates from CircleCI to GH actions.
For context, the
Makefile
is used for development and was used in CircleCi. The vanilla-demo job uses the makefile to build the vanilla files, however for the lib, web and other demos, the makefile can't make use of the cache and installs all dependencies every time it runs which could become costly in the long run and also can't run the tasks concurrently.The github actions that were created also output the artifacts which will make it a lot easier to debug if an issue arises.
The deploy on CircleCi was using gsutil which is a legacy tool (see https://cloud.google.com/storage/docs/gsutil). The github steps in the workflows use official actions. For the deploy if there's an issue with publishing on npm, the other steps won't run (deploying the SDK to GCS and the demo for google storage artifacts).
The deploy steps are fairly complex and were very hard to test:
Example
All steps have been tested except the following:
-dry-run
flagThese changes mimic the same behavior that the CircleCi was doing, however we typically use terraform for deploying and the deploy steps should probably be moved to terraform. This should be addressed in the future.
Also, the bash script that checks for the versions to publish would need to be converted to a reusable github action. It installs dependencies (it needs semver) needlessly, it's hard to manually run. It could easily be created using a javascript action, it would be a lot easier to test, would be more robust and performant. This might be done in the future. Since the deploy rarely runs, it's not a problem for now.
The script I created can be used for any package available in npm to manually test the different scenarios. It doesn't upload anything, it only returns an array which contains the versions that need to be updated.
useage example:
./scripts/versions-to-update.sh core-js v1.5.10