# image-upload.yml name: Upload containers to Quay on: workflow_call: secrets: QUAY_USER: required: true QUAY_TOKEN: required: true jobs: containers: name: Build container images runs-on: ubuntu-latest strategy: matrix: arch: - arm64 - amd64 - ppc64le - s390x steps: - name: Install dependencies required for multi-arch builds run: sudo apt-get update && sudo apt-get install qemu-user-static podman fuse-overlayfs - name: Set up Go 1.23 uses: actions/setup-go@v5 with: go-version: 1.23 - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false - name: Login in quay run: podman login quay.io -u="${QUAY_USER}" -p="${QUAY_TOKEN}" env: QUAY_USER: ${{ secrets.QUAY_USER }} QUAY_TOKEN: ${{ secrets.QUAY_TOKEN }} - name: Build kube-burner binary run: make build env: ARCH: ${{ matrix.arch }} - name: Build container image run: make images env: ARCH: ${{ matrix.arch }} ORG: ${GITHUB_REPOSITORY_OWNER} - name: Push container image run: make push env: ARCH: ${{ matrix.arch }} ORG: ${GITHUB_REPOSITORY_OWNER} manifest: name: Build container manifest runs-on: ubuntu-latest needs: containers steps: - name: Check out code uses: actions/checkout@v4 with: fetch-depth: 1 persist-credentials: false - name: Login in quay run: podman login quay.io -u="${QUAY_USER}" -p="${QUAY_TOKEN}" env: QUAY_USER: ${{ secrets.QUAY_USER }} QUAY_TOKEN: ${{ secrets.QUAY_TOKEN }} - name: Create and push manifest run: make manifest env: ORG: ${GITHUB_REPOSITORY_OWNER}