The action is buggy and does not read the "packagerManager" field from the "package.json" despite saying so in its documentation
114 lines
3.1 KiB
YAML
114 lines
3.1 KiB
YAML
name: CI build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
build:
|
|
name: Build artifacts and deploy preview
|
|
if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')"
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Cancel previous runs
|
|
uses: styfle/cancel-workflow-action@0.12.1
|
|
with:
|
|
access_token: ${{ github.token }}
|
|
|
|
- name: Checkout master branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: master
|
|
path: master
|
|
fetch-depth: 0
|
|
|
|
- name: Set up NodeJs
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version-file: './master/package.json'
|
|
|
|
- uses: pnpm/action-setup@v6
|
|
name: Install pnpm
|
|
with:
|
|
version: 11.1.2
|
|
cache: true
|
|
|
|
- name: Cache node_modules
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
**/node_modules
|
|
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
|
|
- name: Build webUI
|
|
run: |
|
|
cd master
|
|
pnpm ci
|
|
pnpm build
|
|
pnpm build-zip
|
|
pnpm build-md5
|
|
ls buildZip
|
|
|
|
- name: Generate Tag Name
|
|
id: GenTagName
|
|
run: |
|
|
cd master/build
|
|
genTag="r$(git rev-list HEAD --count)"
|
|
echo "$genTag"
|
|
echo "::set-output name=value::$genTag"
|
|
|
|
- name: Checkout preview branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: "Suwayomi/Suwayomi-WebUI-preview"
|
|
ref: main
|
|
path: preview
|
|
token: ${{ secrets.BUILD_PREVIEW_TOKEN }}
|
|
|
|
- name: Create Tag
|
|
run: |
|
|
TAG="${{ steps.GenTagName.outputs.value }}"
|
|
echo "tag: $TAG"
|
|
cd preview
|
|
echo "{ \"latest\": \"$TAG\" }" > index.json
|
|
git add index.json
|
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
git config --global user.name "github-actions[bot]"
|
|
git commit -m "Updated to $TAG"
|
|
git push origin main
|
|
|
|
git tag $TAG
|
|
git push origin $TAG
|
|
|
|
- name: Upload CI Release
|
|
uses: ncipollo/release-action@v1
|
|
with:
|
|
token: ${{ secrets.BUILD_PREVIEW_TOKEN }}
|
|
artifacts: "master/buildZip/*"
|
|
owner: "Suwayomi"
|
|
repo: "Suwayomi-WebUI-preview"
|
|
tag: ${{ steps.GenTagName.outputs.value }}
|
|
|
|
- name: Checkout github pages repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: "Suwayomi-WebUI-preview/suwayomi-webui-preview.github.io"
|
|
ref: main
|
|
path: gh-pages
|
|
token: ${{ secrets.DEPLOY_PREVIEW_TOKEN }}
|
|
|
|
- name: Deploy github pages
|
|
run: |
|
|
TAG="${{ steps.GenTagName.outputs.value }}"
|
|
rm -rf gh-pages/*
|
|
cp -r master/build/* gh-pages
|
|
cd gh-pages
|
|
cp index.html 404.html
|
|
git add -A
|
|
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
git config --global user.name "github-actions[bot]"
|
|
git commit -m "$TAG"
|
|
git push origin main
|