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

CUS-345: CI: use self-hosted runners #7

Merged
merged 3 commits into from
Jul 15, 2024
Merged

CUS-345: CI: use self-hosted runners #7

merged 3 commits into from
Jul 15, 2024

Conversation

jayconrod
Copy link
Contributor

@jayconrod jayconrod commented Jul 12, 2024

This change moves the various workflow steps from Github hosted runners to our self-hosted runners, so that we control the CI environment and save on Github action minutes spent. Since the self-hosted runners don't have the Go toolchain installed, these builds are removed (hopefully temporarily, while we resolve this issue).

Tested: workflows successfully run on this PR

Bug: CUS-345

@jayconrod jayconrod changed the title CI: use self-hosted runners CUS-345: CI: use self-hosted runners Jul 12, 2024
@jayconrod
Copy link
Contributor Author

Local builds only for now. Waiting for an upstream bug fix to land in Opal for macOS.

Comment on lines +38 to +48
- os: "macos"
arch: "x64"
os_distribution: "monterey"
os_version: "12"
revision: "d04e89854b3931f4aaced77aa3a2fcad5834b3a6"

golang-builder:
runs-on: ubuntu-latest
timeout-minutes: 5
- os: "windows"
arch: "x64"
os_distribution: "server"
os_version: "2022"
revision: "d04e89854b3931f4aaced77aa3a2fcad5834b3a6"
Copy link
Contributor

Choose a reason for hiding this comment

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

Why add all the platforms? AFAICT we can build and release our binaries using Linux as the exec platform (for either local or remote builds)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We could build and release the binaries, but we can't run the tests on other platforms.

The other issue is that the GoStdLib action is kind of slow if we're building for three platforms on the same machine. There are a few ways to speed that up, but it's easy to run on separate machines.

Copy link
Contributor

Choose a reason for hiding this comment

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

Adding info from our chat: test coverage is important; if we add builds that use the Go toolchain (either via bazel run @rules_go//go -- build ./..., or via Docker images with the Go toolchain installed) then we can choose whether we implement these checks via bazel test or go test.

the GoStdLib action is kind of slow if we're building for three platforms on the same machine

Agreed, though I think we will be resolving that with RBE?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Agreed, though I think we will be resolving that with RBE?

Unfortunately, I don't think Bazel can test on more than one platform at a time, even with RBE. Running Bazel on multiple machines helps a little with that.

@minor-fixes
Copy link
Contributor

LGTM! Added a PR description - do you mind checking it for accuracy/completeness?

@jayconrod
Copy link
Contributor Author

LGTM! Added a PR description - do you mind checking it for accuracy/completeness?

Thanks, I edited in that we also want to control the CI environment.

@jayconrod jayconrod merged commit 06c6c42 into main Jul 15, 2024
3 checks passed
@jayconrod jayconrod deleted the jay-ci-re branch July 15, 2024 22:21
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