Add support for external repositories with pull request previews

This commit is contained in:
brecert 2021-09-13 23:54:39 -04:00
parent 45c7cd0307
commit f28fd40a78
No known key found for this signature in database
GPG key ID: 1B2E56B9EC985B96
3 changed files with 53 additions and 16 deletions

34
.github/actions/build/action.yml vendored Normal file
View file

@ -0,0 +1,34 @@
name: Build
description: Builds a project instance, assuming all the correct project files are in the build folder
inputs:
base:
name: Base path
description: The path to use as a base for linking
required: true
default: /
folder:
name: Build Folder
description: The folder to try to build from
required: true
default: .
runs:
using: composite
steps:
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 15
cache: "yarn"
- run: yarn install
# - run: yarn check
- name: build
env:
BUILD_FOLDER: ${{ inputs.folder }}
BASE: ${{ inputs.base }}
run: |
cd "$BUILD_FOLDER"
yarn build --base "$BASE"

View file

@ -1,8 +1,8 @@
name: Clean Preview name: Clean Preview
#! Safety: #! Safety:
#! this workflow should not execute any code at all #! this workflow should not execute any untrusted input at all
#! see githubs docs on pull_request_target for more #! see the docs on `pull_request_target` for more
on: on:
pull_request_target: pull_request_target:
types: [unlabeled] types: [unlabeled]

View file

@ -1,40 +1,43 @@
name: Preview Pull Request name: Preview Pull Request
#! Safety:
#! this workflow should not execute any untrusted input at all
#! see the docs on `pull_request_target` for more
on: on:
pull_request: pull_request_target:
types: [synchronize, reopened, labeled] types: [synchronize, reopened, labeled]
jobs: jobs:
build: preview:
runs-on: ubuntu-latest runs-on: ubuntu-latest
# make sure the pull request is labeled with 'use-preview' # make sure the pull request is labeled with 'use-preview'
if: github.event.label.name == 'use-preview' || contains(github.event.pull_request.labels.*.name, 'use-preview') if: github.event.label.name == 'use-preview' || contains(github.event.pull_request.labels.*.name, 'use-preview')
env:
BASE: refs/pull/${{ github.event.pull_request.number }}/merge
REPO: ${{ github.event.repository.name }}
steps: steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
# Head commit of the pull request # Head commit of the pull request
ref: ${{ github.event.pull_request.head.sha }} ref: ${{ github.event.pull_request.head.sha }}
path: pull
submodules: recursive submodules: recursive
- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: 15
cache: "yarn"
- run: yarn install
# - run: yarn check
- name: build - name: build
run: yarn build --base "/revite/${{ github.ref }}/" uses: ./.github/actions/build_preview
with:
base: /${{ env.REPO }}/${{ env.BASE }}/
folder: pull
- name: publish preview - name: publish preview
uses: JamesIves/github-pages-deploy-action@4.1.5 uses: JamesIves/github-pages-deploy-action@4.1.5
with: with:
folder: dist folder: dist
branch: build-previews branch: build-previews
target-folder: ${{ github.ref }} target-folder: ${{ env.BASE }}
single-commit: true single-commit: true
- name: send comment - name: send comment
@ -43,6 +46,6 @@ jobs:
header: Preview environment header: Preview environment
message: | message: |
## Preview environment ## Preview environment
https://${{ github.repository_owner }}.github.io/revite/${{ github.ref }}/ https://${{ github.repository_owner }}.github.io/${{ env.REPO }}/${{ env.BASE }}/
This link will remain active until the `use-preview` label is removed. This link will remain active until the `use-preview` label is removed.