diff --git a/.github/pull-build-image.yaml b/.github/pull-build-image.yaml new file mode 100644 index 0000000..ceaf2c0 --- /dev/null +++ b/.github/pull-build-image.yaml @@ -0,0 +1,35 @@ +name: Pull Build Image + +on: + pull_request_target: + types: [opened, edited, synchronize, reopened, ready_for_review] + +permissions: + id-token: write # This is required for requesting the JWT token + contents: read # This is required for actions/checkout + +jobs: + build: + uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main + with: + name: eventing-publisher-proxy + dockerfile: Dockerfile + context: . + export-tags: true + test-image: + runs-on: ubuntu-latest + needs: build + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install jq + run: sudo apt-get install jq + + - name: Extract image name from JSON + id: extract-image + run: | + echo "IMAGE_NAME=$(echo '${{ needs.build.outputs.images }}' | jq -r '.[0]')" >> $GITHUB_ENV + + - name: Test image + run: ./scripts/shell/run-and-check-container.sh "$IMAGE_NAME" PR-${{ github.event.number }}-container diff --git a/.github/push-build-image.yaml b/.github/push-build-image.yaml new file mode 100644 index 0000000..c76a1b6 --- /dev/null +++ b/.github/push-build-image.yaml @@ -0,0 +1,39 @@ +name: Push Build Image + +on: + push: + branches: + - "main" + - "release-*" + paths-ignore: + - "docs/**" + +permissions: + id-token: write # This is required for requesting the JWT token + contents: read # This is required for actions/checkout + +jobs: + compute-tags: + runs-on: ubuntu-latest + outputs: + tags: ${{ steps.get_tag.outputs.TAGS }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Get the latest tag + id: get_tag + run: | + { + echo 'TAGS<> "$GITHUB_OUTPUT" + build: + needs: compute-tags + uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main + with: + name: eventing-publisher-proxy + dockerfile: Dockerfile + context: . + tags: ${{ needs.compute-tags.outputs.tags }} diff --git a/.github/tag-build-image.yaml b/.github/tag-build-image.yaml new file mode 100644 index 0000000..aba7b6a --- /dev/null +++ b/.github/tag-build-image.yaml @@ -0,0 +1,37 @@ +name: Tag Build Image + +on: + push: + tags: + - '[0-9]+.[0-9]+.[0-9]+' # This will trigger the workflow when a tag (x.y.z) is pushed. + +permissions: + id-token: write # This is required for requesting the JWT token + contents: read # This is required for actions/checkout + +jobs: + compute-tags: + runs-on: ubuntu-latest + outputs: + tags: ${{ steps.get_tag.outputs.TAGS }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Get the latest tag + id: get_tag + run: | + { + echo 'TAGS<> "$GITHUB_OUTPUT" + build: + name: build-${{ github.ref_name }} # The release pipeline will check the status of this job by this name format (e.g. build-1.0.1). + needs: compute-tags + uses: kyma-project/test-infra/.github/workflows/image-builder.yml@main + with: + name: eventing-publisher-proxy + dockerfile: Dockerfile + context: . + tags: ${{ needs.compute-tags.outputs.tags }}