libretime/.github/workflows/website-preview-command.yml

104 lines
3.1 KiB
YAML

name: Website Preview
on:
workflow_dispatch:
inputs:
pull-request-number:
description: "Pull request number to preview"
required: true
type: string
pull_request_target:
types: [closed]
branches: [main]
paths:
- website/**
- docs/**
env:
# PREVIEW_DEPLOY_KEY is present in the secrets
PREVIEW_EXTERNAL_REPOSITORY: libretime/libretime.github.io
PREVIEW_URL: https://libretime.github.io
PREVIEW_BASE_URL: /
jobs:
deploy:
if: github.event_name == 'workflow_dispatch'
name: Deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Checkout pull request
run: hub pr checkout ${{ github.event.inputs.pull-request-number }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: "16"
cache: yarn
cache-dependency-path: website/yarn.lock
- name: Install
working-directory: website
run: yarn install --frozen-lockfile
- name: Build
working-directory: website
run: yarn build
env:
URL: ${{ env.PREVIEW_URL }}
BASE_URL: ${{ env.PREVIEW_BASE_URL }}pr-${{ github.event.inputs.pull-request-number }}/
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
external_repository: ${{ env.PREVIEW_EXTERNAL_REPOSITORY }}
deploy_key: ${{ secrets.PREVIEW_DEPLOY_KEY }}
publish_dir: website/build
destination_dir: pr-${{ github.event.inputs.pull-request-number }}
full_commit_message: "deploy pr-${{ github.event.inputs.pull-request-number }}"
keep_files: true
- name: Notify deployment succeeded
if: ${{ success() }}
uses: peter-evans/create-or-update-comment@v2
with:
issue-number: ${{ github.event.inputs.pull-request-number }}
body: |
**:rocket: Preview deployment succeeded!**
Preview: ${{ env.PREVIEW_URL }}${{ env.PREVIEW_BASE_URL }}pr-${{ github.event.inputs.pull-request-number }}/
Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: Notify deployment failed
if: ${{ failure() }}
uses: peter-evans/create-or-update-comment@v2
with:
issue-number: ${{ github.event.inputs.pull-request-number }}
body: |
**:boom: Preview deployment failed!**
Workflow: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
clean:
if: github.event_name == 'pull_request_target' && github.event.action == 'closed'
name: Clean
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
repository: ${{ env.PREVIEW_EXTERNAL_REPOSITORY }}
ssh-key: ${{ secrets.PREVIEW_DEPLOY_KEY }}
- name: Remove files
run: rm -fR pr-${{ github.event.pull_request.number }}
- uses: endbug/add-and-commit@v9
with:
message: "clean pr-${{ github.event.pull_request.number }}"