-
Notifications
You must be signed in to change notification settings - Fork 127
Migrate to GitHub Actions #8835
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
base: main
Are you sure you want to change the base?
Conversation
78627cb to
5985aba
Compare
Integration report for "Migrate to GitHub actions with tests"
|
Integration report for "Migrate to GitHub actions with tests"
|
Integration report for "Migrate to GitHub actions with tests"
|
| pip install --no-deps -r requirements.txt | ||
| pip-sync --pip-args=--no-deps | ||
| - name: Save cached virtualenv | ||
| if: steps.cache-venv.outputs.cache-hit != 'true' |
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.
I don't see a cache-venv step. Is that missing? This build job outputs a Cache save failed. warning which I'm guessing is because the key is already used by a previous build. Did you mean to attempt to pull from the cache before this?
| PATH=".venv/bin:$PATH" pip-compile --allow-unsafe --generate-hashes --quiet | ||
| git diff --exit-code -G '^ *[^# ]' -- requirements.txt | ||
|
|
||
| verify-format-yaml: |
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.
The run page shows a bunch of yaml warnings in the annotations section which is useful but those should be fixed as part of this.
.github/workflows/build.yml
Outdated
| needs: [generate-dags, main-generate-sql-and-dags, decide-runs] | ||
| if: | | ||
| (github.ref != 'refs/heads/main') && | ||
| (needs.decide-runs.outputs.validate-sql == 'true' || needs.decide-runs.outputs.validate-routines == 'true' || needs.decide-runs.outputs.deploy == 'true') |
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.
outputs.deploy = "${{ github.ref }}" == "refs/heads/main" so it would always be false
| (needs.decide-runs.outputs.validate-sql == 'true' || needs.decide-runs.outputs.validate-routines == 'true' || needs.decide-runs.outputs.deploy == 'true') | |
| (needs.decide-runs.outputs.validate-sql == 'true' || needs.decide-runs.outputs.validate-routines == 'true') |
|
|
||
| At this point, the table exists in Bigquery so you are able to: | ||
| - [Find and re-run the CI](https://app.circleci.com/pipelines/github/mozilla/bigquery-etl?) of your PR and make sure that all tests pass | ||
| - [Find and re-run the CI](https://github.com/mozilla/bigquery-etl/actions) of your PR and make sure that all tests pass |
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.
The top-level actions page has a lot of other stuff in it which would make it harder to find a specific run
| - [Find and re-run the CI](https://github.com/mozilla/bigquery-etl/actions) of your PR and make sure that all tests pass | |
| - [Find and re-run the CI](https://github.com/mozilla/bigquery-etl/actions/workflows/build.yml) of your PR and make sure that all tests pass |
| 1. Open a new PR with these changes. | ||
| 1. PR reviewed and approved. | ||
| 1. Find and run again the [CI pipeline](https://app.circleci.com/pipelines/github/mozilla/bigquery-etl?) for the PR. | ||
| 1. Find and run again the [CI pipeline](https://github.com/mozilla/bigquery-etl/actions) for the PR. |
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.
| 1. Find and run again the [CI pipeline](https://github.com/mozilla/bigquery-etl/actions) for the PR. | |
| 1. Find and run again the [CI pipeline](https://github.com/mozilla/bigquery-etl/actions/workflows/build.yml) for the PR. |
tests/test_entrypoint.py
Outdated
| # running bq in CircleCI will fail since it's not installed | ||
| # in GitHub Actions, bq is installed but may fail for other reasons |
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.
This reads like it's one (confusing) sentence
| # running bq in CircleCI will fail since it's not installed | |
| # in GitHub Actions, bq is installed but may fail for other reasons | |
| # Running bq in CircleCI will fail since it's not installed. | |
| # In GitHub Actions, bq is installed but may fail for other reasons |
tests/test_entrypoint.py
Outdated
| # running bq in CircleCI will fail since it's not installed | ||
| # in GitHub Actions, bq is installed but may fail for other reasons |
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.
| # running bq in CircleCI will fail since it's not installed | |
| # in GitHub Actions, bq is installed but may fail for other reasons | |
| # Running bq in CircleCI will fail since it's not installed. | |
| # In GitHub Actions, bq is installed but may fail for other reasons |
tests/test_entrypoint.py
Outdated
| # running bq in CircleCI will fail since it's not installed | ||
| # in GitHub Actions, bq is installed but may fail for other reasons |
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.
| # running bq in CircleCI will fail since it's not installed | |
| # in GitHub Actions, bq is installed but may fail for other reasons | |
| # Running bq in CircleCI will fail since it's not installed. | |
| # In GitHub Actions, bq is installed but may fail for other reasons |
Integration report for "Migrate to GitHub Actions"
|
Description
This PR migrates bigquery-etl to Github Actions. mozilla/telemetry-airflow#2339 needs to be merged alongside it as this will also change where docker images will get published to (GAR).
CircleCI will need to be disabled once this is merged.
I did test most of the CI tasks (also those that will just run on
main) in github.com/mozilla/bigquery-etl/actions/runs/21886512482 (except for syncing the DAGs submodules) and made some SQL changes there to trigger stage deploys. Some CI tests run a few seconds faster, some a few seconds slower compared to CircleCI (https://app.circleci.com/pipelines/github/mozilla/bigquery-etl/57677/workflows/61769702-d64a-49c9-a571-de1de5c9999a). Overall, the runtime seems to be about the same.An annoying thing with Github Actions is that it creates a deployment when accessing environment variables in the
devenvironment. The stage deploy credentials need to come from that environment (see https://github.com/mozilla/dataservices-infra/pull/1512#discussion_r2775354202). There is an open roadmap item to decouple deployments from using the environment variables: https://github.com/orgs/community/discussions/36919 but until this is implemented every time a CI task runs that accesses an environment variable it adds a message to the PR.Related Tickets & Documents
Reviewer, please follow this checklist