--- name: build on: push: branches: - main pull_request: branches: - "*" permissions: contents: read packages: write jobs: build-image: strategy: matrix: apps: - name: job_sidecar_container - tag: job-sidecar runs-on: ubuntu-latest steps: - name: Checkout the repo uses: actions/checkout@v4 - name: Get changed files in the docs folder id: changed-files-specific uses: tj-actions/changed-files@v40.2.0 with: files: services/${{ matrix.apps.name }}/** - name: Set up QEMU if: steps.changed-files-specific.outputs.any_changed == 'true' uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx if: steps.changed-files-specific.outputs.any_changed == 'true' uses: docker/setup-buildx-action@v3 - name: Login to GitHub Package Registry if: steps.changed-files-specific.outputs.any_changed == 'true' uses: docker/login-action@v3 with: registry: ghcr.io username: ${{github.actor}} password: ${{ secrets.GITHUB_TOKEN }} - name: Set Github tag if: steps.changed-files-specific.outputs.any_changed == 'true' id: vars run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - name: Build and push if: steps.changed-files-specific.outputs.any_changed == 'true' uses: docker/build-push-action@v5 env: DOCKER_BUILDKIT: 1 with: context: services/${{ matrix.apps.name }} platforms: linux/amd64,linux/arm64 push: github.ref == 'refs/heads/main' tags: | ghcr.io/porter-dev/${{ matrix.apps.tag }}:${{ steps.vars.outputs.sha_short }} ghcr.io/porter-dev/${{ matrix.apps.tag }}:latest