mirror of
https://github.com/krkn-chaos/krkn.git
synced 2026-04-05 10:17:33 +00:00
125 lines
4.2 KiB
YAML
125 lines
4.2 KiB
YAML
name: Docker Image CI
|
|
on:
|
|
push:
|
|
tags: ['v[0-9].[0-9]+.[0-9]+']
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.runner }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- platform: amd64
|
|
runner: ubuntu-latest
|
|
- platform: arm64
|
|
runner: ubuntu-24.04-arm
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Test Build the Docker images
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
./containers/compile_dockerfile.sh
|
|
docker buildx build --no-cache \
|
|
--platform linux/${{ matrix.platform }} \
|
|
-t quay.io/krkn-chaos/krkn \
|
|
-t quay.io/redhat-chaos/krkn \
|
|
containers/ \
|
|
--build-arg PR_NUMBER=${{ github.event.pull_request.number }}
|
|
|
|
- name: Login to krkn-chaos quay
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: quay.io
|
|
username: ${{ secrets.QUAY_USERNAME }}
|
|
password: ${{ secrets.QUAY_PASSWORD }}
|
|
|
|
- name: Build and push krkn-chaos images
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
run: |
|
|
./containers/compile_dockerfile.sh
|
|
TAG=${GITHUB_REF#refs/tags/}
|
|
docker buildx build --no-cache \
|
|
--platform linux/${{ matrix.platform }} \
|
|
--provenance=false \
|
|
-t quay.io/krkn-chaos/krkn:latest-${{ matrix.platform }} \
|
|
-t quay.io/krkn-chaos/krkn:${TAG}-${{ matrix.platform }} \
|
|
containers/ \
|
|
--build-arg TAG=${TAG} \
|
|
--push --load
|
|
|
|
- name: Login to redhat-chaos quay
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: quay.io
|
|
username: ${{ secrets.QUAY_USER_1 }}
|
|
password: ${{ secrets.QUAY_TOKEN_1 }}
|
|
|
|
- name: Push redhat-chaos images
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
run: |
|
|
TAG=${GITHUB_REF#refs/tags/}
|
|
docker tag quay.io/krkn-chaos/krkn:${TAG}-${{ matrix.platform }} quay.io/redhat-chaos/krkn:${TAG}-${{ matrix.platform }}
|
|
docker tag quay.io/krkn-chaos/krkn:${TAG}-${{ matrix.platform }} quay.io/redhat-chaos/krkn:latest-${{ matrix.platform }}
|
|
docker push quay.io/redhat-chaos/krkn:${TAG}-${{ matrix.platform }}
|
|
docker push quay.io/redhat-chaos/krkn:latest-${{ matrix.platform }}
|
|
|
|
manifest:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
if: startsWith(github.ref, 'refs/tags')
|
|
steps:
|
|
- name: Login to krkn-chaos quay
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: quay.io
|
|
username: ${{ secrets.QUAY_USERNAME }}
|
|
password: ${{ secrets.QUAY_PASSWORD }}
|
|
|
|
- name: Create and push KrknChaos manifests
|
|
run: |
|
|
TAG=${GITHUB_REF#refs/tags/}
|
|
docker manifest create quay.io/krkn-chaos/krkn:${TAG} \
|
|
quay.io/krkn-chaos/krkn:${TAG}-amd64 \
|
|
quay.io/krkn-chaos/krkn:${TAG}-arm64
|
|
docker manifest push quay.io/krkn-chaos/krkn:${TAG}
|
|
|
|
docker manifest create quay.io/krkn-chaos/krkn:latest \
|
|
quay.io/krkn-chaos/krkn:latest-amd64 \
|
|
quay.io/krkn-chaos/krkn:latest-arm64
|
|
docker manifest push quay.io/krkn-chaos/krkn:latest
|
|
|
|
- name: Login to redhat-chaos quay
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: quay.io
|
|
username: ${{ secrets.QUAY_USER_1 }}
|
|
password: ${{ secrets.QUAY_TOKEN_1 }}
|
|
|
|
- name: Create and push RedHat Chaos manifests
|
|
run: |
|
|
TAG=${GITHUB_REF#refs/tags/}
|
|
docker manifest create quay.io/redhat-chaos/krkn:${TAG} \
|
|
quay.io/redhat-chaos/krkn:${TAG}-amd64 \
|
|
quay.io/redhat-chaos/krkn:${TAG}-arm64
|
|
docker manifest push quay.io/redhat-chaos/krkn:${TAG}
|
|
|
|
docker manifest create quay.io/redhat-chaos/krkn:latest \
|
|
quay.io/redhat-chaos/krkn:latest-amd64 \
|
|
quay.io/redhat-chaos/krkn:latest-arm64
|
|
docker manifest push quay.io/redhat-chaos/krkn:latest
|
|
|
|
- name: Rebuild krkn-hub
|
|
uses: redhat-chaos/actions/krkn-hub@main
|
|
with:
|
|
QUAY_USER: ${{ secrets.QUAY_USERNAME }}
|
|
QUAY_TOKEN: ${{ secrets.QUAY_PASSWORD }}
|
|
AUTOPUSH: ${{ secrets.AUTOPUSH }}
|