--- name: "Stable container" on: push: branches: - main jobs: prepare_base: name: Prepare the base image runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set action link variable run: echo "LINK=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV - name: Set up QEMU uses: docker/setup-qemu-action@master with: platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@master - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.CR_PAT }} - name: Build base uses: docker/build-push-action@v2 with: builder: ${{ steps.buildx.outputs.name }} context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/${{ github.repository }}-base:latest labels: | action_id=${{ github.action }} action_link=${{ env.LINK }} actor=${{ github.actor }} sha=${{ github.sha }} ref=${{ github.ref }} build_containers: name: Build final images runs-on: ubuntu-latest needs: prepare_base strategy: matrix: target_image: - helmfile - helmfile-secrets - argo steps: - name: Checkout uses: actions/checkout@v2 - name: Set action link variable run: echo "LINK=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_ENV - name: Set up QEMU uses: docker/setup-qemu-action@master with: platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@master - name: Login to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.CR_PAT }} - name: Build ${{ matrix.target_image }} uses: docker/build-push-action@v2 with: builder: ${{ steps.buildx.outputs.name }} context: ./dockerfiles file: ./dockerfiles/Dockerfile-${{ matrix.target_image }} platforms: linux/amd64,linux/arm64 push: true tags: | ghcr.io/${{ github.repository }}-${{ matrix.target_image }}:latest ghcr.io/${{ github.repository }}-${{ matrix.target_image }}:stable labels: | action_id=${{ github.action }} action_link=${{ env.LINK }} actor=${{ github.actor }} sha=${{ github.sha }} ref=${{ github.ref }}