mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-25 15:15:19 +00:00
83 lines
2.7 KiB
YAML
83 lines
2.7 KiB
YAML
name: release-pr
|
|
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
|
|
env:
|
|
# 7 GiB by default on GitHub, setting to 6 GiB
|
|
NODE_OPTIONS: --max-old-space-size=6144
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
release-pr:
|
|
if: github.repository == 'nuxt/nuxt' && github.event.issue.pull_request && github.event.comment.body == '/trigger release'
|
|
permissions:
|
|
id-token: write
|
|
pull-requests: write
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 20
|
|
|
|
steps:
|
|
- name: Ensure action is by maintainer
|
|
uses: octokit/request-action@872c5c97b3c85c23516a572f02b31401ef82415d # v2.3.1
|
|
id: check_role
|
|
with:
|
|
route: GET /repos/nuxt/nuxt/collaborators/${{ github.event.comment.user.login }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get PR Info
|
|
id: pr
|
|
env:
|
|
PR_NUMBER: ${{ github.event.issue.number }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
GH_REPO: ${{ github.repository }}
|
|
COMMENT_AT: ${{ github.event.comment.created_at }}
|
|
run: |
|
|
pr="$(gh api -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" /repos/${GH_REPO}/pulls/${PR_NUMBER})"
|
|
head_sha="$(echo "$pr" | jq -r .head.sha)"
|
|
updated_at="$(echo "$pr" | jq -r .updated_at)"
|
|
|
|
if [[ $(date -d "$updated_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
echo "head_sha=$head_sha" >> $GITHUB_OUTPUT
|
|
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
|
|
with:
|
|
ref: ${{ steps.pr.outputs.head_sha }}
|
|
fetch-depth: 1
|
|
|
|
- run: corepack enable
|
|
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
|
|
with:
|
|
node-version: 20
|
|
cache: "pnpm"
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Build
|
|
run: pnpm build
|
|
|
|
- name: Release Edge
|
|
run: ./scripts/release-edge.sh pr-${{ github.event.issue.number }}
|
|
env:
|
|
NODE_AUTH_TOKEN: ${{ secrets.NODE_AUTH_TOKEN }}
|
|
NPM_CONFIG_PROVENANCE: true
|
|
|
|
- name: Post comment
|
|
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
|
with:
|
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
script: |
|
|
github.rest.issues.createComment({
|
|
issue_number: context.issue.number,
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
body: `:rocket: Release triggered! You can now install [nuxt@npm:nuxt-nightly@pr-${{ github.event.issue.number }}](https://www.npmjs.com/package/nuxt-nightly/v/pr-${{ github.event.issue.number }})`
|
|
})
|