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

chore: build and publish workflow (PROJQUAY-2556) #912

Merged
merged 1 commit into from Oct 7, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/build-and-publish.yaml
@@ -0,0 +1,44 @@
---
name: Build and Publish

on:
push:
branches:
- redhat-** # IMPORTANT! this must match the jobs.build-and-publish.env.BRANCH_PREFIX (save the **).

jobs:
build-and-publish:
name: Publish container image
env:
BRANCH_PREFIX: redhat- # IMPORTANT! this must match the .on.push.branches prefix!
REGISTRY: quay.io/projectquay
REPO_NAME: ${{ github.event.repository.name }}
Copy link
Member

Choose a reason for hiding this comment

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

Is this quay, or quay/quay. In either case, is ${{ env.REGISTRY }}/${{ env.REPO_NAME }}:${{ env.TAG }} below correct?

Otherwise LGTM

Copy link
Contributor Author

Choose a reason for hiding this comment

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

TL;DR: If built from redhat-3.5 branch for example, then ${{ env.REGISTRY }}/${{ env.REPO_NAME }}:${{ env.TAG }} is evaluated to quay.io/projectquay/quay:3.5-unstable.

REPO_NAME is evaluated to quay. Check this out https://github.com/flavians-test-org/build-me/runs/3755985838?check_suite_focus=true, and expand the Echo repository name step.
The workflow used there is nearly identical the one in this PR: https://github.com/flavians-test-org/build-me/actions/runs/1291052126/workflow#L15
And the generated tags for my tests: https://quay.io/repository/fmissi/build-me?tag=latest&tab=tags

TAG_SUFFIX: -unstable
runs-on: 'ubuntu-latest'
steps:
- name: Check out the repo
uses: actions/checkout@v2

- name: Set version from branch name
id: version-from-branch
if: startsWith('env.BRANCH_PREFIX', env.GITHUB_REF)
run: |
BRANCH_NAME=${GITHUB_REF#refs/heads/}
echo "::set-output name=version::${BRANCH_NAME/${{ env.BRANCH_PREFIX }}/}"

- name: Login to Quay.io
uses: docker/login-action@v1
with:
registry: quay.io
username: ${{ secrets.QUAY_USER }}
password: ${{ secrets.QUAY_TOKEN }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
env:
TAG: ${{ steps.version-from-branch.outputs.version }}${{ env.TAG_SUFFIX }}
with:
push: true
tags: ${{ env.REGISTRY }}/${{ env.REPO_NAME }}:${{ env.TAG }}