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

Enable docker build and release #3

Merged
merged 2 commits into from
Mar 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 39 additions & 38 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,46 +47,47 @@ jobs:
- name: Test
run: go test -race ./...

# - name: Set up QEMU
# uses: docker/setup-qemu-action@v3
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

# - name: Login to GitHub Container Registry
# uses: docker/login-action@v2
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

# - name: Build and push PR
# if: ${{ github.event_name == 'pull_request' }}
# uses: docker/build-push-action@v5
# with:
# context: .
# platforms: linux/arm64,linux/amd64
# file: ./Dockerfile
# push: true
# tags: ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:${{ github.sha }}
- name: Build and push PR
if: ${{ github.event_name == 'pull_request' }}
Copy link
Contributor

Choose a reason for hiding this comment

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

I might be wrong, since I'm not very familiar with the docker build push action. But will this push an image to the registry on each pull request opened?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, each pull request would result in an image pushed to registry. This is useful when we do some changes and want to deploy that specific image to a cluster without merging to main.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that this is useful to build at every PR change (as it triggers on each pull_request event) but don't know if we also need to push the image 🤔

Copy link
Contributor

@atanasovskib atanasovskib Mar 13, 2024

Choose a reason for hiding this comment

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

Will PRs opened by people outside of our org also run this, and push it to our registry (how does GitHub handle this for public repos)?

Also maybe we can do it as a manual action instead of running on each PR

Copy link
Contributor

Choose a reason for hiding this comment

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

it might me useful in cases when we want to test how changes in PR works on dev/prod (any other cluster) without actually merging this PR

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 think that this is useful to build at every PR change (as it triggers on each pull_request event) but don't know if we also need to push the image 🤔

So should we build and discard it? As Roman mentioned, it is useful to have these images when we want to test before merging

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Will PRs opened by people outside of our org also run this, and push it to our registry (how does GitHub handle this for public repos)?

Also maybe we can do it as a manual action instead of running on each PR

Good point. I think that once the repository is public we'd be able to control whether GHA are ran for PR from forks. At the moment that option is disabled in settings, I am assuming it is because it is not a public repository.

uses: docker/build-push-action@v5
with:
context: .
platforms: linux/arm64,linux/amd64
file: ./Dockerfile
push: true
tags: ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:${{ github.sha }}

# - name: Build and push main
# if: ${{ github.event_name != 'pull_request' && github.event_name != 'release' }}
# uses: docker/build-push-action@v5
# with:
# context: .
# platforms: linux/arm64,linux/amd64
# file: ./Dockerfile
# push: true
# tags: ghcr.io/castai/egressd/egressd:${{ github.sha }}
- name: Build and push main
if: ${{ github.event_name != 'pull_request' && github.event_name != 'release' }}
uses: docker/build-push-action@v5
with:
context: .
platforms: linux/arm64,linux/amd64
file: ./Dockerfile
push: true
tags: ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:${{ github.sha }}

# - name: Build and push release (egressd collector)
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# platforms: linux/arm64,linux/amd64
# file: ./Dockerfile
# tags: |
# ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:${{ env.RELEASE_TAG }}
# ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:latest
- name: Build and push release
if: ${{ github.event_name == 'release' }}
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/arm64,linux/amd64
file: ./Dockerfile
tags: |
ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:${{ env.RELEASE_TAG }}
ghcr.io/castai/gpu-metrics-exporter/gpu-metrics-exporter:latest
Loading