name: Build & Publish Backend on: [push] jobs: build: runs-on: ubuntu-latest steps: - name: Check out the repo uses: actions/checkout@v3 - uses: https://github.com/dorny/paths-filter@v2 id: changes with: filters: | backend: - 'backend/**' frontend: - 'frontend/**' # Frontend - name: "[Frontend] Docker meta" if: steps.changes.outputs.frontend == 'true' id: frontend-meta uses: https://github.com/docker/metadata-action@v4 with: images: git.flokaiser.com/dhbw/cloud-computing-backend tags: | type=sha,enable=true,priority=100,prefix={{branch}}-,suffix=,format=short type=raw,value=latest,enable={{is_default_branch}} # Backend - name: "[Backend] Docker meta" if: steps.changes.outputs.backend == 'true' id: backend-meta uses: https://github.com/docker/metadata-action@v4 with: images: git.flokaiser.com/dhbw/cloud-computing-backend tags: | type=sha,enable=true,priority=100,prefix={{branch}}-,suffix=,format=short type=raw,value=latest,enable={{is_default_branch}} - name: Get get-docker.sh run: curl -fsSL https://get.docker.com -o get-docker.sh - name: Install docker run: sh get-docker.sh - name: Login to Registry uses: docker/login-action@v2 with: registry: git.flokaiser.com username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 # Frontend - name: "[Frontend] Build and push" if: steps.changes.outputs.frontend == 'true' uses: docker/build-push-action@v4 with: file: frontend/Dockerfile platforms: linux/amd64 push: true tags: ${{ steps.frontend-meta.outputs.tags }} # Backend - name: "[Backend] Build and push" if: steps.changes.outputs.backend == 'true' uses: docker/build-push-action@v4 with: file: backend/Dockerfile platforms: linux/amd64 push: true tags: ${{ steps.backend-meta.outputs.tags }}