From f934ffae6f1c8ffe93a9e522dd405d8a6f19f2f6 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Fri, 6 Sep 2024 17:29:17 +0200 Subject: [PATCH 01/11] make e2e reuse build image workflow --- .github/workflows/build-image.yml | 2 -- .github/workflows/test-e2e-runtime-watcher.yml | 12 ++++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 2c048ad9..d54f2725 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -11,8 +11,6 @@ on: required: false type: string default: "" - pull_request_target: - types: [ opened, edited, synchronize, reopened, ready_for_review ] permissions: id-token: write # This is required for requesting the JWT token diff --git a/.github/workflows/test-e2e-runtime-watcher.yml b/.github/workflows/test-e2e-runtime-watcher.yml index 5850074a..2784bcaa 100644 --- a/.github/workflows/test-e2e-runtime-watcher.yml +++ b/.github/workflows/test-e2e-runtime-watcher.yml @@ -6,15 +6,15 @@ on: k8s_version: description: With Kubernetes version required: false - workflow_run: - workflows: ["Build Image"] - types: - - completed - branches-ignore: - - main + pull_request_target: + types: [ opened, edited, synchronize, reopened, ready_for_review ] jobs: + build-image: + name: Build Image + uses: ./.github/workflows/build-image.yml e2e-integration: name: E2E + needs: build-image strategy: matrix: e2e-test: From 82dbb609fb421adfcee7fc3ed1f49131223c8bcc Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Mon, 9 Sep 2024 15:39:59 +0200 Subject: [PATCH 02/11] remove nounset --- .github/scripts/release/create_changelog.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/scripts/release/create_changelog.sh b/.github/scripts/release/create_changelog.sh index c10be0b5..17ca56a0 100755 --- a/.github/scripts/release/create_changelog.sh +++ b/.github/scripts/release/create_changelog.sh @@ -1,7 +1,6 @@ #!/usr/bin/env bash -set -o nounset set -o errexit set -E set -o pipefail From 361a1d6b2a140d603e06a4ecb1c3ad8c9901e5cb Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Mon, 9 Sep 2024 15:47:32 +0200 Subject: [PATCH 03/11] fix script path --- .github/workflows/create-release.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 97b58db1..4ed7c890 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -78,8 +78,8 @@ jobs: env: ITERATIONS: 40 SLEEP_SECONDS: 30 - run: ./scripts/release/wait_for_image.sh ${{ env.IMAGE_REPO }}:${{ github.event.inputs.name }} $ITERATIONS $SLEEP_SECONDS + run: ./.github/scripts/release/wait_for_image.sh ${{ env.IMAGE_REPO }}:${{ github.event.inputs.name }} $ITERATIONS $SLEEP_SECONDS - name: Publish release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./scripts/release/publish_release.sh ${{ needs.draft-release.outputs.release_id }} + run: ./.github/scripts/release/publish_release.sh ${{ needs.draft-release.outputs.release_id }} From 74ba0163524c457d3c96eb5c1d3eb309284b42f4 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Mon, 9 Sep 2024 17:41:17 +0200 Subject: [PATCH 04/11] fix draft_release id --- .github/workflows/create-release.yaml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 4ed7c890..9fe24da6 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -19,9 +19,6 @@ jobs: validate-release: name: Validate release runs-on: ubuntu-latest - outputs: - current_release_tag: ${{ steps.get_current_release_tag.outputs.current_release_tag }} - last_release_tag: ${{ steps.get_last_release_tag.outputs.last_release_tag }} steps: - name: Checkout code uses: actions/checkout@v4 @@ -58,7 +55,7 @@ jobs: git tag ${{ github.event.inputs.name }} git push origin ${{ github.event.inputs.name }} --tags outputs: - release_id: ${{ steps.draft_release.outputs.release_id }} + release_id: ${{ steps.draft-release.outputs.release_id }} builds: needs: draft-release uses: ./.github/workflows/build-image.yml From d3f481be9263115ca4d0cc88db2eedebf297cfdb Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 10:34:00 +0200 Subject: [PATCH 05/11] fix create_changelog.sh --- .github/scripts/release/create_changelog.sh | 54 ++++++++------------- .github/workflows/change-log.yml | 24 +++++++++ 2 files changed, 43 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/change-log.yml diff --git a/.github/scripts/release/create_changelog.sh b/.github/scripts/release/create_changelog.sh index 17ca56a0..ab096d93 100755 --- a/.github/scripts/release/create_changelog.sh +++ b/.github/scripts/release/create_changelog.sh @@ -5,49 +5,33 @@ set -o errexit set -E set -o pipefail -RELEASE_VERSION=$1 -PREVIOUS_RELEASE=$2 +CURRENT_RELEASE_TAG=$1 +LAST_RELEASE_TAG=$2 +DOCKER_IMAGE_URL=$3 - -if [ "${PREVIOUS_RELEASE}" == "" ] +if [ "${LAST_RELEASE_TAG}" == "" ] then - PREVIOUS_RELEASE=$(git describe --tags --abbrev=0) + LAST_RELEASE_TAG=$(git describe --tags --abbrev=0) fi -REPOSITORY=${REPOSITORY:-kyma-project/template-operator} -GITHUB_URL=https://api.github.com/repos/${REPOSITORY} -GITHUB_AUTH_HEADER="Authorization: token ${GITHUB_TOKEN}" +GITHUB_URL=https://api.github.com/repos/$CODE_REPOSITORY +GITHUB_AUTH_HEADER="Authorization: Bearer $GITHUB_TOKEN" CHANGELOG_FILE="CHANGELOG.md" -echo "## What has changed" >> ${CHANGELOG_FILE} -git log "${PREVIOUS_RELEASE}"..HEAD --pretty=tformat:"%h" --reverse | while read -r commit +echo "## What has changed" >> $CHANGELOG_FILE + +git log "$LAST_RELEASE_TAG..$CURRENT_RELEASE_TAG" --pretty=tformat:"%h" --reverse | while read -r commit do - COMMIT_AUTHOR=$(curl -H "${GITHUB_AUTH_HEADER}" -sS "${GITHUB_URL}/commits/${commit}" | jq -r '.author.login') - if [ "${COMMIT_AUTHOR}" != "kyma-bot" ]; then - git show -s "${commit}" --format="* %s by @${COMMIT_AUTHOR}" >> ${CHANGELOG_FILE} - fi + COMMIT_AUTHOR=$(curl -H "$GITHUB_AUTH_HEADER" -sS "$GITHUB_URL"/commits/"$commit" | jq -r '.author.login') + git show -s "$commit" --format="* %s by @$COMMIT_AUTHOR" >> $CHANGELOG_FILE done -NEW_CONTRIB=$$.new - -join -v2 \ -<(curl -H "${GITHUB_AUTH_HEADER}" -sS "${GITHUB_URL}/compare/$(git rev-list --max-parents=0 HEAD)...${PREVIOUS_RELEASE}" | jq -r '.commits[].author.login' | sort -u) \ -<(curl -H "${GITHUB_AUTH_HEADER}" -sS "${GITHUB_URL}/compare/${PREVIOUS_RELEASE}...HEAD" | jq -r '.commits[].author.login' | sort -u) >${NEW_CONTRIB} - -if [ -s ${NEW_CONTRIB} ] -then - echo -e "\n## New contributors" >> ${CHANGELOG_FILE} - while read -r user - do - REF_PR=$(grep "@${user}" ${CHANGELOG_FILE} | head -1 | grep -o " (#[0-9]\+)" || true) - if [ -n "${REF_PR}" ] - then - REF_PR=" in ${REF_PR}" - fi - echo "* @${user} made first contribution${REF_PR}" >> ${CHANGELOG_FILE} - done <${NEW_CONTRIB} -fi +{ + echo -e "\n**Full changelog**: $GITHUB_URL/compare/$LAST_RELEASE_TAG...$CURRENT_RELEASE_TAG" + echo -e "\n" + echo "## Docker image URL" + echo "$DOCKER_IMAGE_URL" +} >> $CHANGELOG_FILE -echo -e "\n**Full changelog**: https://github.com/$REPOSITORY/compare/${PREVIOUS_RELEASE}...${RELEASE_VERSION}" >> ${CHANGELOG_FILE} +echo $CHANGELOG_FILE -rm ${NEW_CONTRIB} || echo "cleaned up" \ No newline at end of file diff --git a/.github/workflows/change-log.yml b/.github/workflows/change-log.yml new file mode 100644 index 00000000..6b3ba495 --- /dev/null +++ b/.github/workflows/change-log.yml @@ -0,0 +1,24 @@ +name: "Create release" + +env: + IMAGE_REPO: europe-docker.pkg.dev/kyma-project/prod/runtime-watcher-skr + CODE_REPOSITORY: kyma-project/runtime-watcher + +on: + pull_request_target: + types: [ opened, edited, synchronize, reopened, ready_for_review ] + +jobs: + draft-release: + name: Create draft release + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Generate changelog + id: generate_changelog + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./.github/scripts/release/create_changelog.sh 1.1.4 ${{ env.IMAGE_REPO }}:1.1.4 \ No newline at end of file From 788601386d4eb2cfec6fb8725f3581ab1cf371e7 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 10:41:45 +0200 Subject: [PATCH 06/11] fix create_changelog.sh --- .github/scripts/release/create_changelog.sh | 4 ++-- .github/workflows/change-log.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/scripts/release/create_changelog.sh b/.github/scripts/release/create_changelog.sh index ab096d93..2c7930d7 100755 --- a/.github/scripts/release/create_changelog.sh +++ b/.github/scripts/release/create_changelog.sh @@ -6,8 +6,8 @@ set -E set -o pipefail CURRENT_RELEASE_TAG=$1 -LAST_RELEASE_TAG=$2 -DOCKER_IMAGE_URL=$3 +DOCKER_IMAGE_URL=$2 +LAST_RELEASE_TAG=$3 if [ "${LAST_RELEASE_TAG}" == "" ] then diff --git a/.github/workflows/change-log.yml b/.github/workflows/change-log.yml index 6b3ba495..1c7f301a 100644 --- a/.github/workflows/change-log.yml +++ b/.github/workflows/change-log.yml @@ -1,4 +1,4 @@ -name: "Create release" +name: "Test Changelog" env: IMAGE_REPO: europe-docker.pkg.dev/kyma-project/prod/runtime-watcher-skr From 4a57096b4d450ff862e229f45b0393863cc82321 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 10:45:56 +0200 Subject: [PATCH 07/11] Trigger job From 6dcb682fcf0f8e4259ee3db3b61d22a5299604b4 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 10:56:44 +0200 Subject: [PATCH 08/11] fix create_changelog.sh --- .github/scripts/release/create_changelog.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/scripts/release/create_changelog.sh b/.github/scripts/release/create_changelog.sh index 2c7930d7..c3939332 100755 --- a/.github/scripts/release/create_changelog.sh +++ b/.github/scripts/release/create_changelog.sh @@ -20,10 +20,12 @@ CHANGELOG_FILE="CHANGELOG.md" echo "## What has changed" >> $CHANGELOG_FILE -git log "$LAST_RELEASE_TAG..$CURRENT_RELEASE_TAG" --pretty=tformat:"%h" --reverse | while read -r commit +git log "$LAST_RELEASE_TAG"..HEAD --pretty=tformat:"%h" --reverse | while read -r commit do COMMIT_AUTHOR=$(curl -H "$GITHUB_AUTH_HEADER" -sS "$GITHUB_URL"/commits/"$commit" | jq -r '.author.login') - git show -s "$commit" --format="* %s by @$COMMIT_AUTHOR" >> $CHANGELOG_FILE + if [ "${COMMIT_AUTHOR}" != "kyma-bot" ]; then + git show -s "${commit}" --format="* %s by @${COMMIT_AUTHOR}" >> ${CHANGELOG_FILE} + fi done { From 824ef051cc613a12a5d2c00acde36e93602bb6d5 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 10:58:51 +0200 Subject: [PATCH 09/11] Trigger job From e82b611afcd0c71a0f677b06f312a2e9db16a3e7 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 11:20:00 +0200 Subject: [PATCH 10/11] fix create_changelog.sh --- .github/scripts/release/create_changelog.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/scripts/release/create_changelog.sh b/.github/scripts/release/create_changelog.sh index c3939332..07c21d4a 100755 --- a/.github/scripts/release/create_changelog.sh +++ b/.github/scripts/release/create_changelog.sh @@ -17,7 +17,8 @@ fi GITHUB_URL=https://api.github.com/repos/$CODE_REPOSITORY GITHUB_AUTH_HEADER="Authorization: Bearer $GITHUB_TOKEN" CHANGELOG_FILE="CHANGELOG.md" - +echo "$GITHUB_URL" +echo "$GITHUB_AUTH_HEADER" echo "## What has changed" >> $CHANGELOG_FILE git log "$LAST_RELEASE_TAG"..HEAD --pretty=tformat:"%h" --reverse | while read -r commit @@ -35,5 +36,5 @@ done echo "$DOCKER_IMAGE_URL" } >> $CHANGELOG_FILE -echo $CHANGELOG_FILE +cat $CHANGELOG_FILE From 3ca304130d5af2e16b2f9fd936f8a33e45685002 Mon Sep 17 00:00:00 2001 From: Xin Ruan Date: Tue, 10 Sep 2024 11:20:29 +0200 Subject: [PATCH 11/11] Trigger job