diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index de99a260..09107204 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -40,6 +40,7 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 + token: ${{ secrets.GIT_BOT_TOKEN }} # creating git tag using bot token because GITHUB_TOKEN would not trigger build workflow (https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow). - name: Create changelog env: @@ -54,14 +55,13 @@ jobs: RELEASE_ID=$(./.github/scripts/create_draft_release.sh ${{ github.event.inputs.version }}) # this will use the CHANGELOG.md from the step 'Create changelog' echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT - - name: Trigger 'release-nats-manager-build' prow job + - name: Add lightweight tag to trigger release build job + env: + GITHUB_TOKEN: ${{ secrets.GIT_BOT_TOKEN }} # creating git tag using bot token because GITHUB_TOKEN would not trigger build workflow (https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow). run: | git tag ${{ github.event.inputs.version }} git push origin ${{ github.event.inputs.version }} - - name: Wait for 'release-nats-manager-build' - run: ./.github/scripts/check-prow-build-job.sh ${{ github.ref_name }} 600 10 30 - - name: Create and upload nats-manager.yaml and nats-default-cr.yaml env: KUSTOMIZE_VERSION: "v4.5.6" @@ -71,9 +71,45 @@ jobs: outputs: release_id: ${{ steps.create-draft.outputs.release_id }} + wait-for-build-job: + name: Wait for build job + needs: [ create-draft ] + runs-on: ubuntu-latest + + steps: + - name: Checkout eventing-tools + uses: actions/checkout@v4 + with: + repository: 'kyma-project/eventing-tools' + path: 'kyma-project/eventing-tools' + ref: main + sparse-checkout: 'scripts/wait-for-commit-check' + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install requirements + run: | + pip install -r $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/requirements.txt + + - name: wait for build + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPOSITORY_FULL_NAME: ${{ github.repository_owner }}/nats-manager + GIT_REF: ${{ github.event.inputs.version }} + # The re-usable image-builder workflow from neighbors appends the "Build image" suffix to the check run name. + GIT_CHECK_RUN_NAME: "build-${{ github.event.inputs.version }} / Build image" + INTERVAL: 60 + TIMEOUT: 900 + run: | + python $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/run.py + publish-release: name: Publish release - needs: [verify-release-status, create-draft] + needs: [verify-release-status, create-draft, wait-for-build-job] runs-on: ubuntu-latest steps: diff --git a/.github/workflows/pull-e2e-test.yml b/.github/workflows/pull-e2e-test.yml index a2723e06..40d7fcc8 100644 --- a/.github/workflows/pull-e2e-test.yml +++ b/.github/workflows/pull-e2e-test.yml @@ -15,7 +15,44 @@ on: - "sec-scanners-config.yaml" jobs: + wait-for-build-job: + name: Wait for build job + runs-on: ubuntu-latest + + steps: + - name: Checkout eventing-tools + uses: actions/checkout@v4 + with: + repository: 'kyma-project/eventing-tools' + path: 'kyma-project/eventing-tools' + ref: main + sparse-checkout: 'scripts/wait-for-commit-check' + + - name: Setup python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + cache: 'pip' + + - name: Install requirements + run: | + pip install -r $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/requirements.txt + + - name: Wait for build job + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + REPOSITORY_FULL_NAME: ${{ github.repository_owner }}/nats-manager + GIT_REF: "${{ github.event.pull_request.head.sha }}" # Note: 'github.event.pull_request.head.sha' is not same as 'github.sha' on pull requests. + # The re-usable image-builder workflow from neighbors appends the "Build image" suffix to the check run name. + GIT_CHECK_RUN_NAME: "build / Build image" + INTERVAL: 60 + TIMEOUT: 900 + run: | + python $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/run.py + e2e: + name: e2e + needs: [ wait-for-build-job ] runs-on: ubuntu-latest steps: - name: Checkout @@ -45,36 +82,6 @@ jobs: run: | make install IMG=$DOCKER_IMAGE - - name: Wait for build job - Checkout eventing-tools - uses: actions/checkout@v4 - with: - repository: 'kyma-project/eventing-tools' - path: 'kyma-project/eventing-tools' - ref: main - sparse-checkout: 'scripts/wait-for-commit-check' - - - name: Wait for build job - Setup python - uses: actions/setup-python@v5 - with: - python-version: '3.10' - cache: 'pip' - - - name: Wait for build job - Install requirements - run: | - pip install -r $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/requirements.txt - - - name: Wait for build job - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPOSITORY_FULL_NAME: ${{ github.repository_owner }}/nats-manager - GIT_REF: "${{ github.event.pull_request.head.sha }}" # Note: 'github.event.pull_request.head.sha' is not same as 'github.sha' on pull requests. - # The re-usable image-builder workflow from neighbors appends the "Build image" suffix to the check run name. - GIT_CHECK_RUN_NAME: "build / Build image" - INTERVAL: 60 - TIMEOUT: 900 - run: | - python $GITHUB_WORKSPACE/kyma-project/eventing-tools/scripts/wait-for-commit-check/run.py - - name: Create kyma-system namespace run: | kubectl create namespace kyma-system @@ -132,6 +139,3 @@ jobs: if: failure() run: | kubectl get nats --all-namespaces - -# references: -# wait for other gh checks to finish: https://github.com/marketplace/actions/wait-for-check