name: "Build image" on: [push] jobs: build-frontend: name: Build base frontend image runs-on: ubuntu-latest outputs: ui_commit: ${{ steps.git-parse.outputs.PULP_UI_COMMIT }} builder_commit: ${{ steps.git-parse.outputs.BUILDER_SHA_COMMIT }} steps: - name: Checkout uses: actions/checkout@v3 with: submodules: true - name: Fetch commit hash for Pulp UI repository id: git-parse run: | FULL_PULP_UI_COMMIT="$(git -C vendor/pulp-ui rev-parse HEAD)" SHORT_PULP_UI_COMMIT="${FULL_PULP_UI_COMMIT:0:7}" echo "PULP_UI_COMMIT=${SHORT_PULP_UI_COMMIT}" >> $GITEA_OUTPUT FULL_BUILDER_SHA="${{ gitea.sha }}" SHORT_BUILDER_SHA="${FULL_BUILDER_SHA:0:7}" echo "BUILDER_SHA_COMMIT=${SHORT_SHA}" >> $GITEA_OUTPUT - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to built-in registry uses: docker/login-action@v3 with: registry: ${{ gitea.server_url }} username: pat password: ${{ secrets.IMAGE_PUSH_TOKEN }} - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: images: code.kruzya.dev/${{ gitea.repository }}/base-frontend tags: | type=sha,format=short type=raw,value=ui-${{ steps.git-parse.outputs.PULP_UI_COMMIT }} - name: Build frontend image uses: docker/build-push-action@v6 with: context: vendor/pulp-ui file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | PULP_UI_COMMIT=${{ steps.git-parse.outputs.PULP_UI_COMMIT }} build-nginx: name: Build nginx image runs-on: ubuntu-latest needs: build-frontend env: BUILDER_COMMIT: ${{ needs.build-frontend.outputs.builder_commit }} UI_COMMIT: ${{ needs.build-frontend.outputs.ui_commit }} steps: - name: Checkout uses: actions/checkout@v3 with: submodules: false # We're using only Dockerfile.nginx - name: Setup Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to built-in registry uses: docker/login-action@v3 with: registry: ${{ gitea.server_url }} username: pat password: ${{ secrets.IMAGE_PUSH_TOKEN }} - name: Extract metadata id: meta uses: docker/metadata-action@v5 with: images: code.kruzya.dev/${{ gitea.repository }}/nginx tags: | type=sha,format=short type=raw,value=ui-${{ env.UI_COMMIT }} - name: Build nginx image uses: docker/build-push-action@v6 with: context: . file: ./Dockerfile.nginx push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | BASE_IMG=code.kruzya.dev/crazyhackgut/pulp-ui-cri/base-frontend:sha-${{ env.BUILDER_COMMIT }}