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

OBS-268: Add GitHub Actions CI workflow. #2959

Merged
merged 1 commit into from
Jul 18, 2024
Merged

OBS-268: Add GitHub Actions CI workflow. #2959

merged 1 commit into from
Jul 18, 2024

Conversation

smarnach
Copy link
Contributor

@smarnach smarnach commented Jul 15, 2024

This workflow pushes Docker images to Google Artifact Registry for use in GCP. It will eventually replace the Circle CI workflow.

The workflow is mostly copied from Eliot, with the commands adapted to match the Circle CI workflow in this repo.

The workflow also builds a Docker image when we push to the build-test-image branch, to make it easier to build test images. We can remove this after the GCP migration (but we don't have to – it doesn't really hurt).

@smarnach smarnach requested a review from a team as a code owner July 15, 2024 14:20
push:
branches:
- main
- gcp-stage # FIXME(smarnach): Remove after the GCP migration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand how this branch is going to be used. In the PR description is this line:

The workflow also builds a stage image when we push to the gcp-stage branch, to make it easier to build test images. We can remove this after the GCP migration.

But I don't understand what that entails and I don't see any explanation of how we're structuring the interim period when we're deploying to both AWS and GCP environments in either the Tecken GCP project plan or OBS-268 issue.

Can you write up the plan somewhere so that we have a reference to review against?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I should have explained this better. This branch isn't really supposed to be part of the migration plan. I mainly planned to use it for two things:

  • Build images for GCP before we have all the storage interface PRs merged. Currently, main is simply not suitable for that, and it will take at least another few days until it is. Since I'm already testing things in GCP, I wanted a convenient way of creating images for that. There is no automatic deployment yet – it's just so I don't have to build the test images manually.

  • Build test images when working on the system tests. We have a few tickets to expand the system tests. It's likely they will fail against the new environment at some point, and then I'll need to prepare a fix. The only way to test that the fix actually works is deploying it to the GCP test environment, since the dev environment simply isn't similar enough in the aspects we are testing now, like response headers and HEAD requests.

Outside of these two cases, I don't intent to deviate from our usual model – main will be deployed to stage and version tags will be deployed to prod in both AWS and GCP.

I can also build images manually for these two cases. It's not a big issue. It just seemed more convenient and less error-prone to be able to force-push to gcp-stage to get a fresh image during the early GCP test period.

And I know I need to fill in more details in the migration plan; I'll do that later this week.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed this a bit. First, I renamed the branch to build-test-image, because that's the intention. Second, the image is tagged test rather than latest. And third, the image is not automatically deployed anywhere.

Copy link
Contributor

@willkg willkg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I talked with Sven about the gcp-stage branch thing and he just needs a way to trigger building images while he's building out the GCP infrastructure. It's not related to deploy pipelines or the interim period where we're running Tecken in both AWS and GCP clouds.

That sounds fine to me.

This workflow pushes Docker images to Google Artifact Registry for use
in GCP. It will eventually replace the Circle CI workflow.
@smarnach smarnach merged commit ae6966e into main Jul 18, 2024
1 check passed
@smarnach smarnach deleted the github-actions-ci branch July 18, 2024 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants