Update release scripts to use trusted publisher #335
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update Playwright Snapshots | |
on: | |
issue_comment: | |
types: [created, edited] | |
permissions: | |
contents: write | |
pull-requests: write | |
jobs: | |
update-snapshots: | |
if: > | |
( | |
github.event.issue.author_association == 'OWNER' || | |
github.event.issue.author_association == 'COLLABORATOR' || | |
github.event.issue.author_association == 'MEMBER' | |
) && github.event.issue.pull_request && contains(github.event.comment.body, 'please update snapshots') | |
runs-on: ${{ matrix.os }} | |
concurrency: ci-${{ github.ref }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-latest, ubuntu-22.04] | |
steps: | |
- name: React to the triggering comment | |
run: | | |
gh api repos/${{ github.repository }}/issues/comments/${{ github.event.comment.id }}/reactions --raw-field 'content=+1' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
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 /repos/${GH_REPO}/pulls/${PR_NUMBER})" | |
head_sha="$(echo "$pr" | jq -r .head.sha)" | |
pushed_at="$(echo "$pr" | jq -r .pushed_at)" | |
if [[ $(date -d "$pushed_at" +%s) -gt $(date -d "$COMMENT_AT" +%s) ]]; then | |
echo "Updating is not allowed because the PR was pushed to (at $pushed_at) after the triggering comment was issued (at $COMMENT_AT)" | |
exit 1 | |
fi | |
echo "head_sha=$head_sha" >> $GITHUB_OUTPUT | |
- name: Checkout the branch from the PR that triggered the job | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: gh pr checkout ${{ github.event.issue.number }} | |
- name: Validate the fetched branch HEAD revision | |
env: | |
EXPECTED_SHA: ${{ steps.pr.outputs.head_sha }} | |
run: | | |
actual_sha="$(git rev-parse HEAD)" | |
if [[ "$actual_sha" != "$EXPECTED_SHA" ]]; then | |
echo "The HEAD of the checked out branch ($actual_sha) differs from the HEAD commit available at the time when trigger comment was submitted ($EXPECTED_SHA)" | |
exit 1 | |
fi | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
with: | |
python_version: '3.11' | |
- name: Install dependencies | |
run: python -m pip install -U "jupyterlab>=4.0.0,<5" | |
- name: Install extension | |
run: | | |
python -m pip install . | |
- name: Build extension | |
run: | | |
npm run build | |
- uses: jupyterlab/maintainer-tools/.github/actions/update-snapshots@v1 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
# Playwright knows how to start JupyterLab server | |
start_server_script: 'null' | |
test_folder: ui-tests | |
npm_client: npm | |
- name: Comment back on the PR | |
run: | | |
gh api repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments --raw-field 'body=Playwright ${{ matrix.os }} snapshots updated.' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |