Skip to content

Create or update branch and pull request from APG trigger #853

Create or update branch and pull request from APG trigger

Create or update branch and pull request from APG trigger #853

Workflow file for this run

name: Create or update branch and pull request from APG trigger
on:
workflow_dispatch:
inputs:
apg_branch:
description: 'Name of branch to be created'
required: true
apg_sha:
description: 'Commit SHA to look for from source'
required: true
apg_pr_number:
description: 'PR number from aria-practices that triggered this workflow'
required: true
fork_path:
description: 'Available when the triggering PR is from a fork'
required: false
jobs:
create-pr:
runs-on: ubuntu-latest
steps:
- name: Get current job and log url
uses: Tiryoh/gha-jobid-action@v0
id: jobs
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
job_name: create-pr
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Set up Node.js
uses: actions/setup-node@v4
with:
cache: npm
cache-dependency-path: scripts/pre-build/package-lock.json
- name: Set up Ruby 3.3
uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
- name: Update git submodules
if: github.event.inputs.fork_path == 'false'
run: |
git submodule update --recursive --remote
cd _external/aria-practices
git checkout ${{ github.event.inputs.apg_sha }}
- name: Update git submodules from fork
if: github.event.inputs.fork_path != 'false'
run: |
git submodule update --recursive --remote
cd _external/aria-practices
git remote add fork https://github.com/${{ github.event.inputs.fork_path }}.git
git fetch fork
git checkout ${{ github.event.inputs.apg_sha }}
- name: Switch to and create/update branch
run: |
# switch to branch if exists or create branch
git switch apg/${{ github.event.inputs.apg_branch }} 2>/dev/null || git switch -c apg/${{ github.event.inputs.apg_branch }}
- name: Update site files
id: update_site_files
working-directory: ./
run: |
bundle install
npm install -C scripts/pre-build
node ./scripts/pre-build
continue-on-error: true
- name: Commit changed files and submodule updates
if: steps.update_site_files.outcome == 'success'
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: Commit changed files and submodule updates
branch: apg/${{ github.event.inputs.apg_branch }}
push_options: '--force'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create pull request
working-directory: ./
run: |
npm install -C scripts/create-pr
node ./scripts/create-pr
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
APG_SHA: ${{ github.event.inputs.apg_sha }}
APG_BRANCH: ${{ github.event.inputs.apg_branch }}
APG_PR_NUMBER: ${{ github.event.inputs.apg_pr_number }}
REPO_OWNER: ${{ github.repository_owner }}
OUTCOME: ${{ steps.update_site_files.outcome }}
JOB_ID: ${{ steps.jobs.outputs.job_id }}