name: Docker Images on: push: branches: [main] paths: - 'src/food-market.api/**' - 'src/food-market.web/**' - 'src/food-market.application/**' - 'src/food-market.domain/**' - 'src/food-market.infrastructure/**' - 'src/food-market.shared/**' - 'deploy/**' - '.github/workflows/docker.yml' workflow_dispatch: permissions: contents: read packages: write jobs: api: name: API image runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build + push uses: docker/build-push-action@v6 with: context: . file: deploy/Dockerfile.api push: true tags: | ghcr.io/${{ github.repository_owner }}/food-market-api:latest ghcr.io/${{ github.repository_owner }}/food-market-api:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max web: name: Web image runs-on: [self-hosted, linux] steps: - uses: actions/checkout@v4 - uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build + push uses: docker/build-push-action@v6 with: context: . file: deploy/Dockerfile.web push: true tags: | ghcr.io/${{ github.repository_owner }}/food-market-web:latest ghcr.io/${{ github.repository_owner }}/food-market-web:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max