From 3e96eeaf354f35e6558a315c64115adb0550274d Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:06:50 +0000 Subject: [PATCH 01/16] Release Notes Generator --- .github/workflows/release-notes-generator.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 818db6ccff249..92669dd06a7df 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -22,11 +22,15 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout sui repo main branch + - name: Checkout ${{ inputs.previous_branch }} uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 with: - fetch-depth: 0 - ref: main + ref: ${{ inputs.previous_branch }} + + - name: Checkout ${{ inputs.current_branch }} + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 + with: + ref: ${{ inputs.current_branch }} - name: Generate Release Notes id: release_notes From b9fcaa66541ebec5bef41b9225eb03c8c045a78c Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:12:26 +0000 Subject: [PATCH 02/16] get commits --- .github/workflows/release-notes-generator.yml | 37 ++++++++++++------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 92669dd06a7df..4f44de10bd387 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -27,30 +27,41 @@ jobs: with: ref: ${{ inputs.previous_branch }} + - name: Get ${{ inputs.previous_branch }} commit + shell: bash + working-directory: ./ + run: | + echo "previous_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV + - name: Checkout ${{ inputs.current_branch }} uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 with: - ref: ${{ inputs.current_branch }} + ref: ${{ inputs.current_branch }} + + - name: Get ${{ inputs.current_branch }} commit + shell: bash + working-directory: ./ + run: | + echo "current_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV - name: Generate Release Notes - id: release_notes shell: bash working-directory: ./ run: | - echo "release_notes=$(./scripts/release_notes.py generate ${{ inputs.previous_branch }} ${{ inputs.current_branch }})" >> $GITHUB_ENV + echo "release_notes=$(./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }})" >> $GITHUB_ENV if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV else echo "pre_release=false" >> $GITHUB_ENV fi - - name: Create Release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - with: - tag_name: ${{ inputs.release_tag }} - release_name: ${{ inputs.release_tag }} - body: ${{ env.release_notes }} - draft: false - prerelease: ${{ env.pre_release }} + # - name: Create Release + # uses: actions/create-release@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + # with: + # tag_name: ${{ inputs.release_tag }} + # release_name: ${{ inputs.release_tag }} + # body: ${{ env.release_notes }} + # draft: false + # prerelease: ${{ env.pre_release }} From e64bac4a852966c43c498405b72abee84bd3e5ae Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:14:25 +0000 Subject: [PATCH 03/16] enable gen release --- .github/workflows/release-notes-generator.yml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 4f44de10bd387..cc0d9fa653f34 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -55,13 +55,13 @@ jobs: echo "pre_release=false" >> $GITHUB_ENV fi - # - name: Create Release - # uses: actions/create-release@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token - # with: - # tag_name: ${{ inputs.release_tag }} - # release_name: ${{ inputs.release_tag }} - # body: ${{ env.release_notes }} - # draft: false - # prerelease: ${{ env.pre_release }} + - name: Create Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ inputs.release_tag }} + release_name: ${{ inputs.release_tag }} + body: ${{ env.release_notes }} + draft: false + prerelease: ${{ env.pre_release }} From b1a9ba12470c1d69c6e7f4674489cb76d3f09275 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:19:28 +0000 Subject: [PATCH 04/16] Use file --- .github/workflows/release-notes-generator.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index cc0d9fa653f34..6788ebc2bb18c 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -48,7 +48,7 @@ jobs: shell: bash working-directory: ./ run: | - echo "release_notes=$(./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }})" >> $GITHUB_ENV + ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV else @@ -62,6 +62,6 @@ jobs: with: tag_name: ${{ inputs.release_tag }} release_name: ${{ inputs.release_tag }} - body: ${{ env.release_notes }} + body_path: ./release_notes.txt draft: false prerelease: ${{ env.pre_release }} From ee90e7117733a0c77d8e5f5e2a7c24866bfdda77 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:29:56 +0000 Subject: [PATCH 05/16] fix branches --- .github/workflows/release-notes-generator.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 6788ebc2bb18c..9cad8388ea151 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -7,14 +7,17 @@ on: description: 'Sui Release Tag' type: string required: true + default: devnet-test-tag previous_branch: description: 'Previous Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true + default: origin/releases/sui-v1.29.0-release current_branch: description: 'Current Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true + default: origin/releases/sui-v1.30.0-release jobs: get-release-notes: @@ -48,7 +51,8 @@ jobs: shell: bash working-directory: ./ run: | - ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt + # ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt + echo "release notes go here, so make sure that everything works" > ./release_notes.txt if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV else From d100368ecb35584ad4576c7ef9a858f49d0bd7e1 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:31:04 +0000 Subject: [PATCH 06/16] remove origin --- .github/workflows/release-notes-generator.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 9cad8388ea151..ee3fc71f5d880 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -12,12 +12,12 @@ on: description: 'Previous Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true - default: origin/releases/sui-v1.29.0-release + default: releases/sui-v1.29.0-release current_branch: description: 'Current Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true - default: origin/releases/sui-v1.30.0-release + default: releases/sui-v1.30.0-release jobs: get-release-notes: From 6780858938097ba2af5cb72c16f298d7e7aef0fb Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:34:22 +0000 Subject: [PATCH 07/16] checkout main --- .github/workflows/release-notes-generator.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index ee3fc71f5d880..9fd9f3654a675 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -45,14 +45,19 @@ jobs: shell: bash working-directory: ./ run: | - echo "current_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV + echo "current_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV + + - name: Checkout main + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 + with: + ref: main - name: Generate Release Notes shell: bash working-directory: ./ run: | - # ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt - echo "release notes go here, so make sure that everything works" > ./release_notes.txt + ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt + if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV else From 7542a41e178c02b4184d0ecc443263d0193518bb Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:37:06 +0000 Subject: [PATCH 08/16] add tee --- .github/workflows/release-notes-generator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 9fd9f3654a675..291e52e0143ba 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -56,7 +56,7 @@ jobs: shell: bash working-directory: ./ run: | - ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} > ./release_notes.txt + ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV From 151cb7ed59bd661254a6b43659357f7c12a1e96f Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:46:11 +0000 Subject: [PATCH 09/16] install python packages --- .github/workflows/release-notes-generator.yml | 5 +++++ release_notes.txt | 0 2 files changed, 5 insertions(+) create mode 100644 release_notes.txt diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 291e52e0143ba..c1609f71d65c4 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -52,6 +52,11 @@ jobs: with: ref: main + - name: install python packages + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Generate Release Notes shell: bash working-directory: ./ diff --git a/release_notes.txt b/release_notes.txt new file mode 100644 index 0000000000000..e69de29bb2d1d From 8bff356666c5ec187efbceef59e3475a6df78cef Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:48:49 +0000 Subject: [PATCH 10/16] fix python setup --- .github/workflows/release-notes-generator.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index c1609f71d65c4..77866af226a2d 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -51,17 +51,17 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 with: ref: main - - - name: install python packages - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt + + - name: Setup Python + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # pin@v5.0.0 + with: + python-version: 3.10.10 - name: Generate Release Notes shell: bash working-directory: ./ run: | - ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt + python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV From 2afc267c1b969a6903825c0d83ac556bf9184862 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 21:50:56 +0000 Subject: [PATCH 11/16] add gh token --- .github/workflows/release-notes-generator.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 77866af226a2d..b728784c3ade6 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -61,7 +61,7 @@ jobs: shell: bash working-directory: ./ run: | - python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV From 8184ea9ea51f0c60e0c7c9c485ab18e9fbe5564c Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 23:09:25 +0000 Subject: [PATCH 12/16] add fetch --- .github/workflows/release-notes-generator.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index b728784c3ade6..32384dd54f0d0 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -50,6 +50,7 @@ jobs: - name: Checkout main uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 with: + fetch-depth: 0 ref: main - name: Setup Python From 8c2f8c91ee5cfff4a885d65adffa31a7f592cab5 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 23:20:57 +0000 Subject: [PATCH 13/16] Make notes pretty --- .github/workflows/release-notes-generator.yml | 6 +++++- scripts/release_notes.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 32384dd54f0d0..52a6131c6f863 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -19,6 +19,9 @@ on: required: true default: releases/sui-v1.30.0-release +env: + RELEASE_NOTES_FILE: "./release_notes.txt" + jobs: get-release-notes: name: Get Release Notes for ${{ inputs.release_tag }} release @@ -62,7 +65,8 @@ jobs: shell: bash working-directory: ./ run: | - GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ./release_notes.txt + GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ${{ env.RELEASE_NOTES_FILE }} + echo "### Full Log: https://github.com/MystenLabs/sui/commits/${{ inputs.release_tag }}" >> ${{ env.RELEASE_NOTES_FILE }} if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV diff --git a/scripts/release_notes.py b/scripts/release_notes.py index 4629a304db631..546ddcd8194e3 100755 --- a/scripts/release_notes.py +++ b/scripts/release_notes.py @@ -304,7 +304,7 @@ def do_generate(from_, to): print(f"## {impacted}") if impacted == "Protocol": - print(f"Sui Protocol Version in this release: {protocol_version}") + print(f"###Sui Protocol Version in this release: `{protocol_version}`") print() for pr, note in reversed(notes): From 8a65066bf2ae9c4a9615b306ab9c285972686bb4 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 23:31:20 +0000 Subject: [PATCH 14/16] productionize the code --- .github/workflows/release-notes-generator.yml | 8 +++----- scripts/release_notes.py | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 52a6131c6f863..108d4407c5a12 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -7,17 +7,14 @@ on: description: 'Sui Release Tag' type: string required: true - default: devnet-test-tag previous_branch: description: 'Previous Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true - default: releases/sui-v1.29.0-release current_branch: description: 'Current Release Branch (Ex: releases/sui-vX.XX.X-release)' type: string required: true - default: releases/sui-v1.30.0-release env: RELEASE_NOTES_FILE: "./release_notes.txt" @@ -66,7 +63,8 @@ jobs: working-directory: ./ run: | GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }} python ./scripts/release_notes.py generate ${{ env.previous_commit }} ${{ env.current_commit }} | tee -a ${{ env.RELEASE_NOTES_FILE }} - echo "### Full Log: https://github.com/MystenLabs/sui/commits/${{ inputs.release_tag }}" >> ${{ env.RELEASE_NOTES_FILE }} + echo "---" >> ${{ env.RELEASE_NOTES_FILE }} + echo "#### Full Log: https://github.com/MystenLabs/sui/commits/${{ inputs.release_tag }}" >> ${{ env.RELEASE_NOTES_FILE }} if [[ ${{ inputs.release_tag }} == devnet* ]]; then echo "pre_release=true" >> $GITHUB_ENV @@ -81,6 +79,6 @@ jobs: with: tag_name: ${{ inputs.release_tag }} release_name: ${{ inputs.release_tag }} - body_path: ./release_notes.txt + body_path: ${{ env.RELEASE_NOTES_FILE }} draft: false prerelease: ${{ env.pre_release }} diff --git a/scripts/release_notes.py b/scripts/release_notes.py index 546ddcd8194e3..fe5c4e68f83a0 100755 --- a/scripts/release_notes.py +++ b/scripts/release_notes.py @@ -304,7 +304,7 @@ def do_generate(from_, to): print(f"## {impacted}") if impacted == "Protocol": - print(f"###Sui Protocol Version in this release: `{protocol_version}`") + print(f"#### Sui Protocol Version in this release: `{protocol_version}`") print() for pr, note in reversed(notes): From e19b698ee72e85e8ca574dfd0f89bf2b1c39f06f Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 23:34:51 +0000 Subject: [PATCH 15/16] add concurrency --- .github/workflows/release-notes-generator.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 108d4407c5a12..33f566d00fad5 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -1,4 +1,6 @@ -name: Release Notes Generator +name: Create Sui Release with Release Notes + +concurrency: ${{ github.workflow }}-${{ inputs.release_tag }} on: workflow_dispatch: From 4a8da89bb90c4bec2abe2279f189277e1dcf4348 Mon Sep 17 00:00:00 2001 From: Eugene Boguslavsky Date: Mon, 19 Aug 2024 23:58:29 +0000 Subject: [PATCH 16/16] simplify logic --- .github/workflows/release-notes-generator.yml | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/.github/workflows/release-notes-generator.yml b/.github/workflows/release-notes-generator.yml index 33f566d00fad5..993efe023436f 100644 --- a/.github/workflows/release-notes-generator.yml +++ b/.github/workflows/release-notes-generator.yml @@ -27,27 +27,12 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout ${{ inputs.previous_branch }} - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 - with: - ref: ${{ inputs.previous_branch }} - - - name: Get ${{ inputs.previous_branch }} commit - shell: bash - working-directory: ./ - run: | - echo "previous_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV - - - name: Checkout ${{ inputs.current_branch }} - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1 - with: - ref: ${{ inputs.current_branch }} - - - name: Get ${{ inputs.current_branch }} commit + - name: Get commits for branches shell: bash working-directory: ./ run: | - echo "current_commit=$(git rev-parse HEAD)" >> $GITHUB_ENV + echo "previous_commit=$(curl https://api.github.com/repos/MystenLabs/sui/commits/${{ inputs.previous_branch }} | jq .sha)" >> $GITHUB_ENV + echo "current_commit=$(curl https://api.github.com/repos/MystenLabs/sui/commits/${{ inputs.current_branch }} | jq .sha)" >> $GITHUB_ENV - name: Checkout main uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # Pin v4.1.1