|
|
@@ -0,0 +1,60 @@
|
|
|
+---
|
|
|
+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
|