forgejo-ci: generate and clean-up previews when in PR
This commit is contained in:
parent
f379ef3926
commit
9099fdefe3
3 changed files with 84 additions and 1 deletions
32
.forgejo/workflows/cleanup.yaml
Normal file
32
.forgejo/workflows/cleanup.yaml
Normal file
|
@ -0,0 +1,32 @@
|
|||
on:
|
||||
pull_request:
|
||||
types: [ closed, merged ]
|
||||
|
||||
jobs:
|
||||
cleanup:
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: |
|
||||
apk add git nodejs jq coreutils curl tree
|
||||
echo "GITHUB_PR_NAME=$(curl -Ls ${{ github.server_url }}/api/v1/repos/${{ github.repository }}/pulls/${{ github.ref_name }} | jq .title | tr ' ' '-' | tr -d ':' | tr -d '"' | tr '[:upper:]' '[:lower:]' )" >> $GITHUB_ENV
|
||||
- name: Public repo pull
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
token: ${{ secrets.PAGES_TOKEN }}
|
||||
ref: public
|
||||
- name: Render website
|
||||
run: |
|
||||
rm -rf previews/$GITHUB_PR_NAME || true
|
||||
cd previews
|
||||
tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html
|
||||
- name: Website upload
|
||||
run: |
|
||||
git config user.name "forgejo-actions[bot]"
|
||||
git config user.email "dev@ayakael.net"
|
||||
git add .
|
||||
git commit -m "Clean-up $GITHUB_PR_NAME"
|
||||
git push
|
|
@ -1,4 +1,7 @@
|
|||
on: [push]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
render:
|
||||
|
|
48
.forgejo/workflows/preview.yaml
Normal file
48
.forgejo/workflows/preview.yaml
Normal file
|
@ -0,0 +1,48 @@
|
|||
on:
|
||||
pull_request:
|
||||
types: [ assigned, opened, synchronize, reopened ]
|
||||
|
||||
jobs:
|
||||
preview:
|
||||
runs-on: x86_64
|
||||
container:
|
||||
image: alpine:latest
|
||||
steps:
|
||||
- name: Environment setup
|
||||
run: |
|
||||
apk add git ikiwiki po4a perl-yaml-tiny tree nodejs jq coreutils curl
|
||||
echo "GITHUB_PR_NAME=$(curl -Ls ${{ github.server_url }}/api/v1/repos/${{ github.repository }}/pulls/${{ github.ref_name }} | jq .title | tr ' ' '-' | tr -d ':' | tr -d '"' | tr '[:upper:]' '[:lower:]' )" >> $GITHUB_ENV
|
||||
- name: Repo pull
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
token: ${{ secrets.PAGES_TOKEN }}
|
||||
- name: Public repo pull
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: public
|
||||
path: public
|
||||
token: ${{ secrets.PAGES_TOKEN }}
|
||||
- name: Render website
|
||||
run: |
|
||||
rm -rf public/previews/$GITHUB_PR_NAME || true
|
||||
mkdir -p public/previews/$GITHUB_PR_NAME
|
||||
sed -i "s|destdir.*|destdir: ./public/previews/$GITHUB_PR_NAME|" ikiwiki.setup
|
||||
ikiwiki --setup ikiwiki.setup
|
||||
cd public/previews
|
||||
tree -d -H '.' -L 1 --noreport --charset utf-8 -T "Versions" -o index.html
|
||||
- name: Website upload
|
||||
run: |
|
||||
rm -Rf public/.forgejo
|
||||
mkdir -p public/.forgejo/workflows
|
||||
cp .forgejo/workflows/deploy.yaml public/.forgejo/workflows/.
|
||||
git log -1 --pretty=%B > commit.txt
|
||||
cd public
|
||||
date > previews/$GITHUB_PR_NAME/generated.txt
|
||||
# Note: the following account information will not work on GHES
|
||||
git config user.name "forgejo-actions[bot]"
|
||||
git config user.email "dev@ayakael.net"
|
||||
git add .
|
||||
git commit -F ../commit.txt
|
||||
git push
|
Loading…
Reference in a new issue