diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 033a352..6c26d23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,40 +15,6 @@ env: MW_INSTALL_PATH: ${{ github.workspace }} jobs: - version: - name: Version Bump - runs-on: ubuntu-latest - steps: - - name: Setup Extension - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Check override permission - id: override - env: - ACTOR: ${{ github.triggering_actor }} - GH_TOKEN: ${{ github.token }} - REPOSITORY: ${{ github.repository }} - run: | - permission=$(gh api \ - --header "X-GitHub-Api-Version: 2022-11-28" \ - --jq '.permission' \ - "repos/${REPOSITORY}/collaborators/${ACTOR}/permission" 2>/dev/null) || permission="none" - if [[ $permission == admin || $permission == maintain ]]; then - echo "enabled=true" >> "$GITHUB_OUTPUT" - echo "Version check overridden by ${ACTOR} (${permission})." - else - echo "enabled=false" >> "$GITHUB_OUTPUT" - fi - - name: Test version check - run: .github/scripts/check-version-bump.test.sh - - name: Check version bump - if: steps.override.outputs.enabled != 'true' - env: - BASE_REVISION: ${{ github.event_name == 'pull_request' && github.event.pull_request.base.sha || github.event.before }} - HEAD_REVISION: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }} - run: .github/scripts/check-version-bump.sh "$BASE_REVISION" "$HEAD_REVISION" - style: name: Code Style runs-on: ${{ matrix.os }} diff --git a/.github/workflows/version.yml b/.github/workflows/version.yml new file mode 100644 index 0000000..a811e65 --- /dev/null +++ b/.github/workflows/version.yml @@ -0,0 +1,52 @@ +name: Version Check + +permissions: + contents: read + +on: + push: + pull_request_target: + +jobs: + version: + name: Version Bump + runs-on: ubuntu-latest + steps: + - name: Setup Extension + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.base.sha || github.sha }} + - name: Fetch pull request revision + id: pr_head + if: github.event_name == 'pull_request_target' + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + git fetch --no-tags origin "pull/${PR_NUMBER}/head" + echo "sha=$(git rev-parse FETCH_HEAD)" >> "$GITHUB_OUTPUT" + - name: Check override permission + id: override + env: + ACTOR: ${{ github.triggering_actor }} + GH_TOKEN: ${{ github.token }} + REPOSITORY: ${{ github.repository }} + run: | + permission=$(gh api \ + --header "X-GitHub-Api-Version: 2022-11-28" \ + --jq '.permission' \ + "repos/${REPOSITORY}/collaborators/${ACTOR}/permission" 2>/dev/null) || permission="none" + if [[ $permission == admin || $permission == maintain ]]; then + echo "enabled=true" >> "$GITHUB_OUTPUT" + echo "Version check overridden by ${ACTOR} (${permission})." + else + echo "enabled=false" >> "$GITHUB_OUTPUT" + fi + - name: Test version check + run: .github/scripts/check-version-bump.test.sh + - name: Check version bump + if: steps.override.outputs.enabled != 'true' + env: + BASE_REVISION: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.base.sha || github.event.before }} + HEAD_REVISION: ${{ github.event_name == 'pull_request_target' && github.event.pull_request.head.sha || github.sha }} + run: .github/scripts/check-version-bump.sh "$BASE_REVISION" "$HEAD_REVISION"