From c3d1f7981b9d2fe5cb3d4c2710edc99af5592dcf Mon Sep 17 00:00:00 2001 From: Finn Evers Date: Thu, 26 Mar 2026 10:08:06 +0100 Subject: [PATCH] ci: Update workflows to prepare for Node.js 20 deprecation (#52443) The workflow run at https://github.com/zed-industries/zed/actions/runs/23557683707 succeeded but threw some warnings for a rather-soon Node.js 20 deprecation (June 2nd). Hence, this PR updates in that context mentioned workflows to newer versions from which on the actions will use Node.js 24. Namely, this updates - `actions/checkout` - `actions/create-github-app-token` and - `peter-evans/create-pull-request` to their latest version which includes said updates. As for their most recent versions, all of these actions just updated their versions to account for said deprecation. Release Notes: - N/A --- .../add_commented_closed_issue_to_project.yml | 2 +- .github/workflows/after_release.yml | 4 +- .github/workflows/assign-reviewers.yml | 8 +- .github/workflows/autofix_pr.yml | 14 +- .github/workflows/background_agent_mvp.yml | 2 +- .github/workflows/bump_collab_staging.yml | 2 +- .github/workflows/bump_patch_version.yml | 10 +- .github/workflows/catch_blank_issues.yml | 2 +- .github/workflows/cherry_pick.yml | 8 +- .../comment_on_potential_duplicate_issues.yml | 4 +- ...ommunity_update_all_top_ranking_issues.yml | 2 +- ...unity_update_weekly_top_ranking_issues.yml | 2 +- .github/workflows/compare_perf.yml | 2 +- .github/workflows/danger.yml | 2 +- .github/workflows/deploy_cloudflare.yml | 2 +- .github/workflows/deploy_collab.yml | 8 +- .github/workflows/docs_suggestions.yml | 4 +- .github/workflows/extension_auto_bump.yml | 2 +- .github/workflows/extension_bump.yml | 22 +-- .github/workflows/extension_tests.yml | 6 +- .../workflows/extension_workflow_rollout.yml | 16 +-- .../workflows/good_first_issue_notifier.yml | 2 +- .github/workflows/pr_labeler.yml | 2 +- .github/workflows/publish_extension_cli.yml | 16 +-- .github/workflows/randomized_tests.yml | 2 +- .github/workflows/release.yml | 34 ++--- .github/workflows/release_nightly.yml | 24 ++-- .github/workflows/run_agent_evals.yml | 2 +- .github/workflows/run_bundling.yml | 16 +-- .github/workflows/run_cron_unit_evals.yml | 2 +- .github/workflows/run_tests.yml | 34 ++--- .github/workflows/run_unit_evals.yml | 2 +- .../track_duplicate_bot_effectiveness.yml | 8 +- .../workflows/update_duplicate_magnets.yml | 2 +- .../src/tasks/workflows/extension_bump.rs | 98 ++----------- .../workflows/extension_workflow_rollout.rs | 66 ++++----- .../tasks/workflows/publish_extension_cli.rs | 22 ++- tooling/xtask/src/tasks/workflows/steps.rs | 132 ++++++++++++++++-- 38 files changed, 310 insertions(+), 278 deletions(-) diff --git a/.github/workflows/add_commented_closed_issue_to_project.yml b/.github/workflows/add_commented_closed_issue_to_project.yml index bd84eaa9446e57c5482ab818df3dbcfe587e040e..27315e7160200dc323899b58d5c307aae656d5c6 100644 --- a/.github/workflows/add_commented_closed_issue_to_project.yml +++ b/.github/workflows/add_commented_closed_issue_to_project.yml @@ -35,7 +35,7 @@ jobs: - if: steps.is-post-close-comment.outputs.result == 'true' id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v2.1.4 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/after_release.yml b/.github/workflows/after_release.yml index 95229f9f46bbd34ffe02832114b2b39da1b7e090..ab2220764861b17317f1fa3971ecf2aa9b645c8d 100644 --- a/.github/workflows/after_release.yml +++ b/.github/workflows/after_release.yml @@ -27,7 +27,7 @@ jobs: - name: after_release::rebuild_releases_page::refresh_cloud_releases run: curl -fX POST https://cloud.zed.dev/releases/refresh?expect_tag=${{ github.event.release.tag_name || inputs.tag_name }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: after_release::rebuild_releases_page::redeploy_zed_dev @@ -110,7 +110,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: release::create_sentry_release diff --git a/.github/workflows/assign-reviewers.yml b/.github/workflows/assign-reviewers.yml index 1a21879b639736232f965863a31b9a8d3a2c2b35..c16a363db18c9ac11f000ad65961a165db43c982 100644 --- a/.github/workflows/assign-reviewers.yml +++ b/.github/workflows/assign-reviewers.yml @@ -51,7 +51,7 @@ jobs: steps: - name: Generate app token id: app-token - uses: actions/create-github-app-token@29824e69f54612133e76f7eaac726eef6c875baf # v2.2.1 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ vars.COORDINATOR_APP_ID }} private-key: ${{ secrets.COORDINATOR_APP_PRIVATE_KEY }} @@ -60,7 +60,7 @@ jobs: # SECURITY: checks out the coordinator repo at ref: main, NOT the PR branch. # persist-credentials: false prevents the token from leaking into .git/config. - name: Checkout coordinator repo - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: repository: zed-industries/codeowner-coordinator ref: main @@ -69,7 +69,7 @@ jobs: persist-credentials: false - name: Setup Python - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 + uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0 with: python-version: "3.11" @@ -95,7 +95,7 @@ jobs: - name: Upload output if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: assign-reviewers-output path: /tmp/assign-reviewers-output.txt diff --git a/.github/workflows/autofix_pr.yml b/.github/workflows/autofix_pr.yml index 1f9e6320700d14cab69662e317c30fa7206eb655..36a459c94b9ea2e35b683bb957d33db362bee262 100644 --- a/.github/workflows/autofix_pr.yml +++ b/.github/workflows/autofix_pr.yml @@ -18,7 +18,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: autofix_pr::run_autofix::checkout_pr @@ -91,22 +91,22 @@ jobs: if: needs.run_autofix.outputs.has_changes == 'true' runs-on: namespace-profile-2x4-ubuntu-2404 steps: - - id: get-app-token + - id: generate-token name: steps::authenticate_as_zippy - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - token: ${{ steps.get-app-token.outputs.token }} + token: ${{ steps.generate-token.outputs.token }} - name: autofix_pr::commit_changes::checkout_pr run: gh pr checkout "$PR_NUMBER" env: PR_NUMBER: ${{ inputs.pr_number }} - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} - name: autofix_pr::download_patch_artifact uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 with: @@ -122,7 +122,7 @@ jobs: GIT_COMMITTER_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com GIT_AUTHOR_NAME: Zed Zippy GIT_AUTHOR_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} concurrency: group: ${{ github.workflow }}-${{ inputs.pr_number }} cancel-in-progress: true diff --git a/.github/workflows/background_agent_mvp.yml b/.github/workflows/background_agent_mvp.yml index 528600138243cb8aca2e0fe0645eda198fc4f2b2..f8c654a293c26e50ccd5194742d7a6977009fb48 100644 --- a/.github/workflows/background_agent_mvp.yml +++ b/.github/workflows/background_agent_mvp.yml @@ -38,7 +38,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 diff --git a/.github/workflows/bump_collab_staging.yml b/.github/workflows/bump_collab_staging.yml index d400905b4da3304a8b916d3a38ae9d8a2855dbf5..4f9724439f37b276de625e5810c777c12f20e4b9 100644 --- a/.github/workflows/bump_collab_staging.yml +++ b/.github/workflows/bump_collab_staging.yml @@ -11,7 +11,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 diff --git a/.github/workflows/bump_patch_version.yml b/.github/workflows/bump_patch_version.yml index 62540321ed755f2fd3879a7ddfc3a37237d8e7de..6b2fa66147b656efd9c8e28cd43cd2e010930dd1 100644 --- a/.github/workflows/bump_patch_version.yml +++ b/.github/workflows/bump_patch_version.yml @@ -13,18 +13,18 @@ jobs: if: github.repository_owner == 'zed-industries' runs-on: namespace-profile-16x32-ubuntu-2204 steps: - - id: get-app-token + - id: generate-token name: steps::authenticate_as_zippy - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false ref: ${{ inputs.branch }} - token: ${{ steps.get-app-token.outputs.token }} + token: ${{ steps.generate-token.outputs.token }} - name: bump_patch_version::run_bump_patch_version::bump_patch_version run: | channel="$(cat crates/zed/RELEASE_CHANNEL)" @@ -51,7 +51,7 @@ jobs: GIT_COMMITTER_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com GIT_AUTHOR_NAME: Zed Zippy GIT_AUTHOR_EMAIL: 234243425+zed-zippy[bot]@users.noreply.github.com - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} concurrency: group: ${{ github.workflow }}-${{ inputs.branch }} cancel-in-progress: true diff --git a/.github/workflows/catch_blank_issues.yml b/.github/workflows/catch_blank_issues.yml index c6f595ef2e0890ce107829f3e91490332567368a..dbceac5a196f2dc9c0963e491bd346dc8c0eff51 100644 --- a/.github/workflows/catch_blank_issues.yml +++ b/.github/workflows/catch_blank_issues.yml @@ -16,7 +16,7 @@ jobs: timeout-minutes: 5 steps: - id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v2.1.4 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/cherry_pick.yml b/.github/workflows/cherry_pick.yml index ee0c1d35d0f9825d7c39b81fba0fe35901de2611..4a3bd0e643e027e7feaeac4760797e2a1fb16e11 100644 --- a/.github/workflows/cherry_pick.yml +++ b/.github/workflows/cherry_pick.yml @@ -26,12 +26,12 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - - id: get-app-token + - id: generate-token name: steps::authenticate_as_zippy - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} @@ -43,7 +43,7 @@ jobs: CHANNEL: ${{ inputs.channel }} GIT_COMMITTER_NAME: Zed Zippy GIT_COMMITTER_EMAIL: hi@zed.dev - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} defaults: run: shell: bash -euxo pipefail {0} diff --git a/.github/workflows/comment_on_potential_duplicate_issues.yml b/.github/workflows/comment_on_potential_duplicate_issues.yml index de51cb1105c98901237ec88d47c34c69ea5c8080..0d7ce3aad3ce9deacfedfe1d237c41127a639da0 100644 --- a/.github/workflows/comment_on_potential_duplicate_issues.yml +++ b/.github/workflows/comment_on_potential_duplicate_issues.yml @@ -27,14 +27,14 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: sparse-checkout: script/github-check-new-issue-for-duplicates.py sparse-checkout-cone-mode: false - name: Get github app token id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/community_update_all_top_ranking_issues.yml b/.github/workflows/community_update_all_top_ranking_issues.yml index ef3b4fc39ddb5f0db9b09c5e861547ae8cd7eb08..b8003a69b243c3cafbf40857c653fb03f515eeec 100644 --- a/.github/workflows/community_update_all_top_ranking_issues.yml +++ b/.github/workflows/community_update_all_top_ranking_issues.yml @@ -10,7 +10,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 if: github.repository == 'zed-industries/zed' steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Set up uv uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3 with: diff --git a/.github/workflows/community_update_weekly_top_ranking_issues.yml b/.github/workflows/community_update_weekly_top_ranking_issues.yml index 53b548f2bb4286e5de86d3823e67d75c0413a1cb..90d1934ffcb6d5d711896d3902b70599e4b06872 100644 --- a/.github/workflows/community_update_weekly_top_ranking_issues.yml +++ b/.github/workflows/community_update_weekly_top_ranking_issues.yml @@ -10,7 +10,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 if: github.repository == 'zed-industries/zed' steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Set up uv uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3 with: diff --git a/.github/workflows/compare_perf.yml b/.github/workflows/compare_perf.yml index 03113f2aa0be4dc794f8f5edec18df22fb0daa31..f6c4253573364269b5b28ee9773a3885381ddfe2 100644 --- a/.github/workflows/compare_perf.yml +++ b/.github/workflows/compare_perf.yml @@ -21,7 +21,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config diff --git a/.github/workflows/danger.yml b/.github/workflows/danger.yml index 62f799baae1fb64a31807030c5700019a3d2c1b7..62739b21675fec2b4289b646fec794846c5fe783 100644 --- a/.github/workflows/danger.yml +++ b/.github/workflows/danger.yml @@ -16,7 +16,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_pnpm diff --git a/.github/workflows/deploy_cloudflare.yml b/.github/workflows/deploy_cloudflare.yml index 37f23b20d2825e9f3d26c456903962a10c2d0081..4e029c63ccd8a022ac9d6107748f964585058735 100644 --- a/.github/workflows/deploy_cloudflare.yml +++ b/.github/workflows/deploy_cloudflare.yml @@ -13,7 +13,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: clean: false diff --git a/.github/workflows/deploy_collab.yml b/.github/workflows/deploy_collab.yml index 7fe06460f752599513c79b71bb01636d69d20e6c..9ba1ee7d8be38b1fd3b3147c679afde03b98dcd7 100644 --- a/.github/workflows/deploy_collab.yml +++ b/.github/workflows/deploy_collab.yml @@ -17,7 +17,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 @@ -48,7 +48,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 @@ -93,7 +93,7 @@ jobs: - name: deploy_collab::publish::sign_into_registry run: doctl registry login - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: deploy_collab::publish::build_docker_image @@ -113,7 +113,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: deploy_collab::deploy::install_doctl diff --git a/.github/workflows/docs_suggestions.yml b/.github/workflows/docs_suggestions.yml index c2dc8b4d5197bcbf38dbfb92dac8c23386726d53..c3d04d5780b290c81470dea16d11f473ee7361b1 100644 --- a/.github/workflows/docs_suggestions.yml +++ b/.github/workflows/docs_suggestions.yml @@ -64,7 +64,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 token: ${{ secrets.GITHUB_TOKEN }} @@ -296,7 +296,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: fetch-depth: 0 ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.base.ref || '' }} diff --git a/.github/workflows/extension_auto_bump.yml b/.github/workflows/extension_auto_bump.yml index 9388a0a442bf249505aaf51e9b6826d3bb228fb7..d4480194edbcacd24d0dff9bfd807abeb513d8ae 100644 --- a/.github/workflows/extension_auto_bump.yml +++ b/.github/workflows/extension_auto_bump.yml @@ -17,7 +17,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 2 diff --git a/.github/workflows/extension_bump.yml b/.github/workflows/extension_bump.yml index f19f64bc61b7d3cf67f8ca44002be3d50d26f0af..72bc340a814e340ef8e716e3db4cb156aee40e8f 100644 --- a/.github/workflows/extension_bump.yml +++ b/.github/workflows/extension_bump.yml @@ -34,7 +34,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 @@ -74,13 +74,13 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.app-id }} private-key: ${{ secrets.app-secret }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -138,7 +138,7 @@ jobs: BUMP_TYPE: ${{ inputs.bump-type }} WORKING_DIR: ${{ inputs.working-directory }} - name: extension_bump::create_pull_request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 with: title: ${{ steps.bump-version.outputs.title }} body: ${{ steps.bump-version.outputs.body }} @@ -162,13 +162,13 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.app-id }} private-key: ${{ secrets.app-secret }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - id: determine-tag @@ -212,15 +212,15 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.app-id }} private-key: ${{ secrets.app-secret }} owner: zed-industries repositories: extensions - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - id: get-extension-id diff --git a/.github/workflows/extension_tests.yml b/.github/workflows/extension_tests.yml index 5323967dd534c8ce81a1125c2e1af4e34564435c..066e1ab1739a0fabb0d6ce8f0f7f4832cfbdc228 100644 --- a/.github/workflows/extension_tests.yml +++ b/.github/workflows/extension_tests.yml @@ -21,7 +21,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }} @@ -73,7 +73,7 @@ jobs: runs-on: namespace-profile-8x32-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -115,7 +115,7 @@ jobs: runs-on: namespace-profile-8x32-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 diff --git a/.github/workflows/extension_workflow_rollout.yml b/.github/workflows/extension_workflow_rollout.yml index f695b43ecac47a221bbc795d03e6ddd6259d7014..4dfaf708f738ef5b5fe8d8687d80690af040eba9 100644 --- a/.github/workflows/extension_workflow_rollout.yml +++ b/.github/workflows/extension_workflow_rollout.yml @@ -20,7 +20,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: checkout_zed_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 @@ -114,8 +114,8 @@ jobs: max-parallel: 10 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} @@ -125,7 +125,7 @@ jobs: permission-contents: write permission-workflows: write - name: checkout_extension_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false path: extension @@ -173,7 +173,7 @@ jobs: echo "sha_short=$(echo "$GITHUB_SHA" | cut -c1-7)" >> "$GITHUB_OUTPUT" - id: create-pr name: extension_workflow_rollout::rollout_workflows_to_extension::create_pull_request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 with: path: extension title: Update CI workflows to `${{ steps.short-sha.outputs.sha_short }}` @@ -207,14 +207,14 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} permission-contents: write - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 diff --git a/.github/workflows/good_first_issue_notifier.yml b/.github/workflows/good_first_issue_notifier.yml index f366c671726348f605325576d65e13c6faa5616e..fc1b49424dce248d107d35cd6f228dd297478cad 100644 --- a/.github/workflows/good_first_issue_notifier.yml +++ b/.github/workflows/good_first_issue_notifier.yml @@ -11,7 +11,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Prepare Discord message id: prepare-message diff --git a/.github/workflows/pr_labeler.yml b/.github/workflows/pr_labeler.yml index 4a1f9c474c6d00bec137bbfb58ba78acb15440d1..2f09ad681698d008845565c989b26f51c489d500 100644 --- a/.github/workflows/pr_labeler.yml +++ b/.github/workflows/pr_labeler.yml @@ -17,7 +17,7 @@ jobs: timeout-minutes: 5 steps: - id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v2.1.4 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/publish_extension_cli.yml b/.github/workflows/publish_extension_cli.yml index 254800329f3dfbe04664853dca9617778a5930d1..e7ba9075db8e552b5050e5e65fef9aeac872a776 100644 --- a/.github/workflows/publish_extension_cli.yml +++ b/.github/workflows/publish_extension_cli.yml @@ -14,7 +14,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -38,13 +38,13 @@ jobs: runs-on: namespace-profile-8x16-ubuntu-2204 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -63,7 +63,7 @@ jobs: - name: publish_extension_cli::update_sha_in_zed::regenerate_workflows run: cargo xtask workflows - name: publish_extension_cli::create_pull_request_zed - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 with: title: 'extension_ci: Bump extension CLI version to `${{ steps.short-sha.outputs.sha_short }}`' body: | @@ -87,8 +87,8 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - id: generate-token - name: extension_bump::generate_token - uses: actions/create-github-app-token@v2 + name: steps::generate_token + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} @@ -108,7 +108,7 @@ jobs: sed -i "s/ZED_EXTENSION_CLI_SHA: [a-f0-9]*/ZED_EXTENSION_CLI_SHA: $GITHUB_SHA/" \ .github/workflows/ci.yml - name: publish_extension_cli::create_pull_request_extensions - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@98357b18bf14b5342f975ff684046ec3b2a07725 with: title: Bump extension CLI version to `${{ steps.short-sha.outputs.sha_short }}` body: | diff --git a/.github/workflows/randomized_tests.yml b/.github/workflows/randomized_tests.yml index de96c3df78bdb67edd584696f02316478e4446dd..9655a81235d79e1e24ae5185ebce8c8051437392 100644 --- a/.github/workflows/randomized_tests.yml +++ b/.github/workflows/randomized_tests.yml @@ -28,7 +28,7 @@ jobs: node-version: "18" - name: Checkout repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: clean: false diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 07a0a6d672a0a66c9c1609e82a22af9034dc936e..ec01217c6acb7ab9a4afd5b65aa1f98a9740aab1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -58,7 +58,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -111,7 +111,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -151,7 +151,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -183,7 +183,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -216,7 +216,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -244,7 +244,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_tests::check_scripts::run_shellcheck @@ -275,7 +275,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 25 @@ -305,7 +305,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -345,7 +345,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -388,7 +388,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_node @@ -433,7 +433,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_node @@ -482,7 +482,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -527,7 +527,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -617,16 +617,16 @@ jobs: if: startsWith(github.ref, 'refs/tags/v') && endsWith(github.ref, '-pre') && !endsWith(github.ref, '.0-pre') runs-on: namespace-profile-2x4-ubuntu-2404 steps: - - id: get-app-token + - id: generate-token name: steps::authenticate_as_zippy - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 with: app-id: ${{ secrets.ZED_ZIPPY_APP_ID }} private-key: ${{ secrets.ZED_ZIPPY_APP_PRIVATE_KEY }} - name: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false run: gh release edit "$GITHUB_REF_NAME" --repo=zed-industries/zed --draft=false env: - GITHUB_TOKEN: ${{ steps.get-app-token.outputs.token }} + GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }} push_release_update_notification: needs: - create_draft_release diff --git a/.github/workflows/release_nightly.yml b/.github/workflows/release_nightly.yml index 093a17e8760e52fc4278d56dd6144b6a0432f3c5..a60ae34c27a0f955d7b068187e88c0a463329a86 100644 --- a/.github/workflows/release_nightly.yml +++ b/.github/workflows/release_nightly.yml @@ -16,7 +16,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 @@ -30,7 +30,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -70,7 +70,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -107,7 +107,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -153,7 +153,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -202,7 +202,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -253,7 +253,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -308,7 +308,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -361,7 +361,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_bundling::set_release_channel_to_nightly @@ -406,7 +406,7 @@ jobs: GIT_LFS_SKIP_SMUDGE: '1' steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_nix_dependencies_namespace @@ -440,7 +440,7 @@ jobs: GIT_LFS_SKIP_SMUDGE: '1' steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_nix_store_macos @@ -488,7 +488,7 @@ jobs: runs-on: namespace-profile-4x8-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 diff --git a/.github/workflows/run_agent_evals.yml b/.github/workflows/run_agent_evals.yml index 56cbd17a197200a6764ed1e28c87e90740cd7deb..218d84e7afa39c2333fcd65bc05c5dc07bf2db8c 100644 --- a/.github/workflows/run_agent_evals.yml +++ b/.github/workflows/run_agent_evals.yml @@ -24,7 +24,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace diff --git a/.github/workflows/run_bundling.yml b/.github/workflows/run_bundling.yml index 5a93cf074e2a2d7f2f3cf8418ed508c5ad359d9e..bc16c2ee9c4f72969a42d04745ba3953d8462469 100644 --- a/.github/workflows/run_bundling.yml +++ b/.github/workflows/run_bundling.yml @@ -23,7 +23,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -62,7 +62,7 @@ jobs: CXX: clang++-18 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -104,7 +104,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_node @@ -148,7 +148,7 @@ jobs: APPLE_NOTARIZATION_ISSUER_ID: ${{ secrets.APPLE_NOTARIZATION_ISSUER_ID }} steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_node @@ -196,7 +196,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -240,7 +240,7 @@ jobs: TIMESTAMP_SERVER: http://timestamp.acs.microsoft.com steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_sentry @@ -274,7 +274,7 @@ jobs: GIT_LFS_SKIP_SMUDGE: '1' steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_nix_dependencies_namespace @@ -306,7 +306,7 @@ jobs: GIT_LFS_SKIP_SMUDGE: '1' steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_nix_store_macos diff --git a/.github/workflows/run_cron_unit_evals.yml b/.github/workflows/run_cron_unit_evals.yml index 6af46e678d3d629cc2f7973b8b31ee99477dfefc..46ed2e380afe7618aa835d5e122955504283ee97 100644 --- a/.github/workflows/run_cron_unit_evals.yml +++ b/.github/workflows/run_cron_unit_evals.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index 1906acf9fab7bbaab81b0549328c2e85d732756d..746941b08c8d6e67148af0651f41cc651a13b2eb 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -19,7 +19,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: ${{ github.ref == 'refs/heads/main' && 2 || 350 }} @@ -124,7 +124,7 @@ jobs: runs-on: namespace-profile-4x8-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -171,7 +171,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -204,7 +204,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -239,7 +239,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -270,7 +270,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -303,7 +303,7 @@ jobs: runs-on: self-32vcpu-windows-2022 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -348,7 +348,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -403,7 +403,7 @@ jobs: runs-on: namespace-profile-mac-large steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -449,7 +449,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -493,7 +493,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -534,7 +534,7 @@ jobs: runs-on: namespace-profile-8x16-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -576,7 +576,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -611,7 +611,7 @@ jobs: CXX: clang++ steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config @@ -657,7 +657,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::cache_rust_dependencies_namespace @@ -676,7 +676,7 @@ jobs: runs-on: namespace-profile-2x4-ubuntu-2404 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: run_tests::check_scripts::run_shellcheck @@ -714,7 +714,7 @@ jobs: GIT_COMMITTER_EMAIL: ci@zed.dev steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false fetch-depth: 0 diff --git a/.github/workflows/run_unit_evals.yml b/.github/workflows/run_unit_evals.yml index 44f12a1886bdac2fa1da8c870d223dd358285658..670a6e6b0fc19940b598221e439a68b656c7ca0f 100644 --- a/.github/workflows/run_unit_evals.yml +++ b/.github/workflows/run_unit_evals.yml @@ -24,7 +24,7 @@ jobs: runs-on: namespace-profile-16x32-ubuntu-2204 steps: - name: steps::checkout_repo - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd with: clean: false - name: steps::setup_cargo_config diff --git a/.github/workflows/track_duplicate_bot_effectiveness.yml b/.github/workflows/track_duplicate_bot_effectiveness.yml index fa1c80616cb6133a7a4cad8841bbaad03115ff58..0d41a6070610ce9e9cc3faa06af78145bc9caec1 100644 --- a/.github/workflows/track_duplicate_bot_effectiveness.yml +++ b/.github/workflows/track_duplicate_bot_effectiveness.yml @@ -22,14 +22,14 @@ jobs: timeout-minutes: 5 steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: sparse-checkout: script/github-track-duplicate-bot-effectiveness.py sparse-checkout-cone-mode: false - name: Get github app token id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} @@ -61,14 +61,14 @@ jobs: timeout-minutes: 10 steps: - name: Checkout repository - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 with: sparse-checkout: script/github-track-duplicate-bot-effectiveness.py sparse-checkout-cone-mode: false - name: Get github app token id: get-app-token - uses: actions/create-github-app-token@bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1 # v1.11.7 + uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 with: app-id: ${{ secrets.ZED_COMMUNITY_BOT_APP_ID }} private-key: ${{ secrets.ZED_COMMUNITY_BOT_PRIVATE_KEY }} diff --git a/.github/workflows/update_duplicate_magnets.yml b/.github/workflows/update_duplicate_magnets.yml index c3832b7bdbec13f74a8136cb1120a682f6e53920..d14f4aa92451aab9c36df49d3be128fd4797a4da 100644 --- a/.github/workflows/update_duplicate_magnets.yml +++ b/.github/workflows/update_duplicate_magnets.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'zed-industries/zed' steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 + - uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Set up Python uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 diff --git a/tooling/xtask/src/tasks/workflows/extension_bump.rs b/tooling/xtask/src/tasks/workflows/extension_bump.rs index 38cd926ef4b3c4bf7e0ba4ae8ccab823be9b3187..a69856ed3333810dcada4b8a8ac5b6cadee12e23 100644 --- a/tooling/xtask/src/tasks/workflows/extension_bump.rs +++ b/tooling/xtask/src/tasks/workflows/extension_bump.rs @@ -5,8 +5,9 @@ use crate::tasks::workflows::{ extension_tests::{self}, runners, steps::{ - self, BASH_SHELL, CommonJobConditions, DEFAULT_REPOSITORY_OWNER_GUARD, FluentBuilder, - NamedJob, cache_rust_dependencies_namespace, checkout_repo, dependant_job, named, + self, BASH_SHELL, CommonJobConditions, DEFAULT_REPOSITORY_OWNER_GUARD, NamedJob, + RepositoryTarget, cache_rust_dependencies_namespace, checkout_repo, dependant_job, + generate_token, named, }, vars::{ JobOutput, StepOutput, WorkflowInput, WorkflowSecret, @@ -123,7 +124,7 @@ fn create_version_label( app_secret: &WorkflowSecret, ) -> (NamedJob, StepOutput) { let (generate_token, generated_token) = - generate_token(&app_id.to_string(), &app_secret.to_string(), None); + generate_token(&app_id.to_string(), &app_secret.to_string()).into(); let (determine_tag_step, tag) = determine_tag(current_version); let job = steps::dependant_job(dependencies) .defaults(extension_job_defaults()) @@ -221,7 +222,7 @@ fn bump_extension_version( app_secret: &WorkflowSecret, ) -> NamedJob { let (generate_token, generated_token) = - generate_token(&app_id.to_string(), &app_secret.to_string(), None); + generate_token(&app_id.to_string(), &app_secret.to_string()).into(); let (bump_version, _new_version, title, body, branch_name) = bump_version(current_version, bump_type); @@ -249,49 +250,6 @@ fn bump_extension_version( named::job(job) } -pub(crate) fn generate_token( - app_id_source: &str, - app_secret_source: &str, - repository_target: Option, -) -> (Step, StepOutput) { - let step = named::uses("actions", "create-github-app-token", "v2") - .id("generate-token") - .add_with( - Input::default() - .add("app-id", app_id_source) - .add("private-key", app_secret_source) - .when_some( - repository_target, - |input, - RepositoryTarget { - owner, - repositories, - permissions, - }| { - input - .when_some(owner, |input, owner| input.add("owner", owner)) - .when_some(repositories, |input, repositories| { - input.add("repositories", repositories) - }) - .when_some(permissions, |input, permissions| { - permissions - .into_iter() - .fold(input, |input, (permission, level)| { - input.add( - permission, - serde_json::to_value(&level).unwrap_or_default(), - ) - }) - }) - }, - ), - ); - - let generated_token = StepOutput::new(&step, "token"); - - (step, generated_token) -} - fn install_bump_2_version() -> Step { named::run( runners::Platform::Linux, @@ -364,7 +322,12 @@ fn create_pull_request( generated_token: StepOutput, branch_name: StepOutput, ) -> Step { - named::uses("peter-evans", "create-pull-request", "v7").with( + named::uses( + "peter-evans", + "create-pull-request", + "98357b18bf14b5342f975ff684046ec3b2a07725", + ) + .with( Input::default() .add("title", title.to_string()) .add("body", body.to_string()) @@ -389,11 +352,9 @@ fn trigger_release( app_secret: &WorkflowSecret, ) -> NamedJob { let extension_registry = RepositoryTarget::new("zed-industries", &["extensions"]); - let (generate_token, generated_token) = generate_token( - &app_id.to_string(), - &app_secret.to_string(), - Some(extension_registry), - ); + let (generate_token, generated_token) = + generate_token(&app_id.to_string(), &app_secret.to_string()) + .for_repository(extension_registry); let (get_extension_id, extension_id) = get_extension_id(); let (release_action, pull_request_number) = release_action(extension_id, tag, &generated_token); @@ -526,34 +487,3 @@ fn extension_workflow_secrets() -> (WorkflowSecret, WorkflowSecret) { (app_id, app_secret) } - -pub(crate) struct RepositoryTarget { - owner: Option, - repositories: Option, - permissions: Option>, -} - -impl RepositoryTarget { - pub fn new(owner: T, repositories: &[&str]) -> Self { - Self { - owner: Some(owner.to_string()), - repositories: Some(repositories.join("\n")), - permissions: None, - } - } - - pub fn current() -> Self { - Self { - owner: None, - repositories: None, - permissions: None, - } - } - - pub fn permissions(self, permissions: impl Into>) -> Self { - Self { - permissions: Some(permissions.into()), - ..self - } - } -} diff --git a/tooling/xtask/src/tasks/workflows/extension_workflow_rollout.rs b/tooling/xtask/src/tasks/workflows/extension_workflow_rollout.rs index a62bb107da5228cd3ba620e47ab77dc673974696..418b7f9e4617ad0ca42b666b7eb4d7d9614895a7 100644 --- a/tooling/xtask/src/tasks/workflows/extension_workflow_rollout.rs +++ b/tooling/xtask/src/tasks/workflows/extension_workflow_rollout.rs @@ -9,9 +9,10 @@ use crate::tasks::workflows::steps::CheckoutStep; use crate::tasks::workflows::steps::cache_rust_dependencies_namespace; use crate::tasks::workflows::vars::JobOutput; use crate::tasks::workflows::{ - extension_bump::{RepositoryTarget, generate_token}, runners, - steps::{self, DEFAULT_REPOSITORY_OWNER_GUARD, NamedJob, named}, + steps::{ + self, DEFAULT_REPOSITORY_OWNER_GUARD, NamedJob, RepositoryTarget, generate_token, named, + }, vars::{self, StepOutput, WorkflowInput}, }; @@ -268,25 +269,29 @@ fn rollout_workflows_to_extension( "#, }; - named::uses("peter-evans", "create-pull-request", "v7") - .add_with(("path", "extension")) - .add_with(("title", title.clone())) - .add_with(("body", body)) - .add_with(("commit-message", title)) - .add_with(("branch", "update-workflows")) - .add_with(( - "committer", - "zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>", - )) - .add_with(( - "author", - "zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>", - )) - .add_with(("base", "main")) - .add_with(("delete-branch", true)) - .add_with(("token", token.to_string())) - .add_with(("sign-commits", true)) - .id("create-pr") + named::uses( + "peter-evans", + "create-pull-request", + "98357b18bf14b5342f975ff684046ec3b2a07725", + ) + .add_with(("path", "extension")) + .add_with(("title", title.clone())) + .add_with(("body", body)) + .add_with(("commit-message", title)) + .add_with(("branch", "update-workflows")) + .add_with(( + "committer", + "zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>", + )) + .add_with(( + "author", + "zed-zippy[bot] <234243425+zed-zippy[bot]@users.noreply.github.com>", + )) + .add_with(("base", "main")) + .add_with(("delete-branch", true)) + .add_with(("token", token.to_string())) + .add_with(("sign-commits", true)) + .id("create-pr") } fn enable_auto_merge(token: &StepOutput) -> Step { @@ -303,17 +308,15 @@ fn rollout_workflows_to_extension( )) } - let (authenticate, token) = generate_token( - vars::ZED_ZIPPY_APP_ID, - vars::ZED_ZIPPY_APP_PRIVATE_KEY, - Some( + let (authenticate, token) = + generate_token(vars::ZED_ZIPPY_APP_ID, vars::ZED_ZIPPY_APP_PRIVATE_KEY).for_repository( RepositoryTarget::new("zed-extensions", &["${{ matrix.repo }}"]).permissions([ ("permission-pull-requests".to_owned(), Level::Write), ("permission-contents".to_owned(), Level::Write), ("permission-workflows".to_owned(), Level::Write), ]), - ), - ); + ); + let (calculate_short_sha, short_sha) = get_short_sha(); let job = Job::default() @@ -368,14 +371,11 @@ fn create_rollout_tag(rollout_job: &NamedJob, filter_repos_input: &WorkflowInput "#}) } - let (authenticate, token) = generate_token( - vars::ZED_ZIPPY_APP_ID, - vars::ZED_ZIPPY_APP_PRIVATE_KEY, - Some( + let (authenticate, token) = + generate_token(vars::ZED_ZIPPY_APP_ID, vars::ZED_ZIPPY_APP_PRIVATE_KEY).for_repository( RepositoryTarget::current() .permissions([("permission-contents".to_owned(), Level::Write)]), - ), - ); + ); let job = Job::default() .needs([rollout_job.name.clone()]) diff --git a/tooling/xtask/src/tasks/workflows/publish_extension_cli.rs b/tooling/xtask/src/tasks/workflows/publish_extension_cli.rs index 0f9bf521247522d0ee68ca32d116e73048bee1a7..dad4bce45399bd8d0b4a6ff842f87830bd77484f 100644 --- a/tooling/xtask/src/tasks/workflows/publish_extension_cli.rs +++ b/tooling/xtask/src/tasks/workflows/publish_extension_cli.rs @@ -2,9 +2,8 @@ use gh_workflow::{ctx::Context, *}; use indoc::indoc; use crate::tasks::workflows::{ - extension_bump::{RepositoryTarget, generate_token}, runners, - steps::{self, CommonJobConditions, NamedJob, named}, + steps::{self, CommonJobConditions, NamedJob, RepositoryTarget, generate_token, named}, vars::{self, StepOutput}, }; @@ -52,11 +51,8 @@ fn publish_job() -> NamedJob { } fn update_sha_in_zed(publish_job: &NamedJob) -> NamedJob { - let (generate_token, generated_token) = generate_token( - vars::ZED_ZIPPY_APP_ID, - vars::ZED_ZIPPY_APP_PRIVATE_KEY, - Some(RepositoryTarget::current()), - ); + let (generate_token, generated_token) = + generate_token(vars::ZED_ZIPPY_APP_ID, vars::ZED_ZIPPY_APP_PRIVATE_KEY).into(); fn replace_sha() -> Step { named::bash(indoc! {r#" @@ -92,7 +88,7 @@ fn create_pull_request_zed(generated_token: &StepOutput, short_sha: &StepOutput) short_sha ); - named::uses("peter-evans", "create-pull-request", "v7").with( + named::uses("peter-evans", "create-pull-request", "98357b18bf14b5342f975ff684046ec3b2a07725").with( Input::default() .add("title", title.clone()) .add( @@ -121,11 +117,9 @@ fn create_pull_request_zed(generated_token: &StepOutput, short_sha: &StepOutput) fn update_sha_in_extensions(publish_job: &NamedJob) -> NamedJob { let extensions_repo = RepositoryTarget::new("zed-industries", &["extensions"]); - let (generate_token, generated_token) = generate_token( - vars::ZED_ZIPPY_APP_ID, - vars::ZED_ZIPPY_APP_PRIVATE_KEY, - Some(extensions_repo), - ); + let (generate_token, generated_token) = + generate_token(vars::ZED_ZIPPY_APP_ID, vars::ZED_ZIPPY_APP_PRIVATE_KEY) + .for_repository(extensions_repo); fn checkout_extensions_repo(token: &StepOutput) -> Step { named::uses( @@ -165,7 +159,7 @@ fn create_pull_request_extensions( ) -> Step { let title = format!("Bump extension CLI version to `{}`", short_sha); - named::uses("peter-evans", "create-pull-request", "v7").with( + named::uses("peter-evans", "create-pull-request", "98357b18bf14b5342f975ff684046ec3b2a07725").with( Input::default() .add("title", title.clone()) .add( diff --git a/tooling/xtask/src/tasks/workflows/steps.rs b/tooling/xtask/src/tasks/workflows/steps.rs index 2593d5dd0e8a2edc33f558de07af05a30f46ddbe..1be6a779f33bfb411ccdd5ac4d979b07dc283e50 100644 --- a/tooling/xtask/src/tasks/workflows/steps.rs +++ b/tooling/xtask/src/tasks/workflows/steps.rs @@ -1,7 +1,11 @@ use gh_workflow::*; use serde_json::Value; -use crate::tasks::workflows::{runners::Platform, vars, vars::StepOutput}; +use crate::tasks::workflows::{ + runners::Platform, + steps::named::function_name, + vars::{self, StepOutput}, +}; pub(crate) fn use_clang(job: Job) -> Job { job.add_env(Env::new("CC", "clang")) @@ -114,7 +118,7 @@ impl From for Step { .uses( "actions", "checkout", - "11bd71901bbe5b1630ceea73d27597364c9af683", // v4 + "93cb6efe18208431cddfb8368fd83d5badbf9bfd", // v5.0.1 ) // prevent checkout action from running `git clean -ffdx` which // would delete the target directory @@ -491,15 +495,119 @@ pub fn git_checkout(ref_name: &dyn std::fmt::Display) -> Step { .add_env(("REF_NAME", ref_name.to_string())) } +pub(crate) struct GenerateAppToken<'a> { + job_name: String, + app_id: &'a str, + app_secret: &'a str, + repository_target: Option, +} + +impl<'a> GenerateAppToken<'a> { + pub fn for_repository(self, repository_target: RepositoryTarget) -> (Step, StepOutput) { + Self { + repository_target: Some(repository_target), + ..self + } + .into() + } +} + +impl<'a> From> for (Step, StepOutput) { + fn from(token: GenerateAppToken<'a>) -> Self { + let step = Step::new(token.job_name) + .uses( + "actions", + "create-github-app-token", + "f8d387b68d61c58ab83c6c016672934102569859", + ) + .id("generate-token") + .add_with( + Input::default() + .add("app-id", token.app_id) + .add("private-key", token.app_secret) + .when_some( + token.repository_target, + |input, + RepositoryTarget { + owner, + repositories, + permissions, + }| { + input + .when_some(owner, |input, owner| input.add("owner", owner)) + .when_some(repositories, |input, repositories| { + input.add("repositories", repositories) + }) + .when_some(permissions, |input, permissions| { + permissions.into_iter().fold( + input, + |input, (permission, level)| { + input.add( + permission, + serde_json::to_value(&level).unwrap_or_default(), + ) + }, + ) + }) + }, + ), + ); + + let generated_token = StepOutput::new(&step, "token"); + (step, generated_token) + } +} + +pub(crate) struct RepositoryTarget { + owner: Option, + repositories: Option, + permissions: Option>, +} + +impl RepositoryTarget { + pub fn new(owner: T, repositories: &[&str]) -> Self { + Self { + owner: Some(owner.to_string()), + repositories: Some(repositories.join("\n")), + permissions: None, + } + } + + pub fn current() -> Self { + Self { + owner: None, + repositories: None, + permissions: None, + } + } + + pub fn permissions(self, permissions: impl Into>) -> Self { + Self { + permissions: Some(permissions.into()), + ..self + } + } +} + +pub(crate) fn generate_token<'a>( + app_id_source: &'a str, + app_secret_source: &'a str, +) -> GenerateAppToken<'a> { + generate_token_with_job_name(app_id_source, app_secret_source) +} + pub fn authenticate_as_zippy() -> (Step, StepOutput) { - let step = named::uses( - "actions", - "create-github-app-token", - "bef1eaf1c0ac2b148ee2a0a74c65fbe6db0631f1", - ) - .add_with(("app-id", vars::ZED_ZIPPY_APP_ID)) - .add_with(("private-key", vars::ZED_ZIPPY_APP_PRIVATE_KEY)) - .id("get-app-token"); - let output = StepOutput::new(&step, "token"); - (step, output) + generate_token_with_job_name(vars::ZED_ZIPPY_APP_ID, vars::ZED_ZIPPY_APP_PRIVATE_KEY).into() +} + +fn generate_token_with_job_name<'a>( + app_id_source: &'a str, + app_secret_source: &'a str, +) -> GenerateAppToken<'a> { + GenerateAppToken { + job_name: function_name(1), + app_id: app_id_source, + app_secret: app_secret_source, + repository_target: None, + } }