Add Docker image creation for crossreference #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: bbm-build-crossreference | |
on: | |
push: | |
paths: | |
- "cross-reference/**" | |
- .github/workflows/bbm_build_crossreference.yml | |
pull_request: | |
paths: | |
- "cross-reference/**" | |
- .github/workflows/bbm_build_crossreference.yml | |
defaults: | |
run: | |
working-directory: cross-reference | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
name: build | |
services: | |
registry: | |
image: registry:2 | |
ports: | |
- 5000:5000 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Check Dockerfile with hadolint | |
run: | | |
docker run -i -v $(pwd):/mnt -w /mnt ghcr.io/hadolint/hadolint:latest hadolint /mnt/Dockerfile | |
- name: Set up env vars | |
run: | | |
echo "REPO=bb-master" >>$GITHUB_ENV | |
- name: Build cross-reference | |
run: | | |
podman build . --tag ${{ env.REPO }}:crossreference | |
- name: Push images to local registry | |
run: | | |
for img in crossreference; do | |
podman push --tls-verify=0 \ | |
${{ env.REPO }}:$img \ | |
docker://localhost:5000/${{ env.REPO }}:$img | |
done | |
- name: Check for registry credentials | |
if: > | |
github.ref == 'refs/heads/main' && | |
github.repository == 'MariaDB/buildbot' | |
run: | | |
missing=() | |
[[ -n "${{ secrets.QUAY_USER }}" ]] || missing+=(QUAY_USER) | |
[[ -n "${{ secrets.QUAY_TOKEN }}" ]] || missing+=(QUAY_TOKEN) | |
for i in "${missing[@]}"; do | |
echo "Missing github secret: $i" | |
done | |
if (( ${#missing[@]} == 0 )); then | |
echo "DEPLOY_IMAGES=true" >> $GITHUB_ENV | |
else | |
echo "Not pushing images to registry" | |
fi | |
- name: Login to ghcr.io | |
if: ${{ env.DEPLOY_IMAGES == 'true' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Push images to ghcr.io | |
if: ${{ env.DEPLOY_IMAGES == 'true' }} | |
run: | | |
msg="Push docker images to ghcr.io" | |
line="${msg//?/=}" | |
printf "\n${line}\n${msg}\n${line}\n" | |
for image in crossreference; do | |
skopeo copy --all --src-tls-verify=0 \ | |
docker://localhost:5000/${{ env.REPO }}:${image} \ | |
docker://ghcr.io/mariadb/buildbot:${image} | |
done | |
- name: Login to quay.io | |
if: ${{ env.DEPLOY_IMAGES == 'true' }} | |
uses: docker/login-action@v2 | |
with: | |
registry: quay.io | |
username: ${{ secrets.QUAY_USER }} | |
password: ${{ secrets.QUAY_TOKEN }} | |
- name: Push images to quay.io | |
if: ${{ env.DEPLOY_IMAGES == 'true' }} | |
run: | | |
msg="Push docker images to quay.io" | |
line="${msg//?/=}" | |
printf "\n${line}\n${msg}\n${line}\n" | |
for image in crossreference; do | |
skopeo copy --all --src-tls-verify=0 \ | |
docker://localhost:5000/${{ env.REPO }}:${image} \ | |
docker://quay.io/mariadb-foundation/${{ env.REPO }}:${image} | |
done |