You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wiki/.github/workflows/build.yml

84 lines
2.0 KiB

name: Build + Publish
on:
push:
branches:
- scarlett
jobs:
build:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v7
- name: Setup Node.js environment
uses: actions/setup-node@v7
with:
node-version: 26.x
- name: Set Build Variables
run: |
echo "REL_VERSION=3.0.0-alpha.$GITHUB_RUN_NUMBER" >> $GITHUB_ENV
- name: Set Version
run: |
yq -iP '.version = strenv(REL_VERSION)' backend/package.json -o json
yq -iP '.version = strenv(REL_VERSION)' frontend/package.json -o json
- name: Build Assets
working-directory: frontend
run: |
npm ci
npm run build
- name: Build Blocks
working-directory: blocks
run: |
npm ci
npm run build
- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build and push Docker images
uses: docker/build-push-action@v7
with:
context: .
file: dev/build/Dockerfile
push: true
platforms: linux/amd64,linux/arm64
tags: |
ghcr.io/requarks/wiki:3.0.0-alpha
ghcr.io/requarks/wiki:${{ env.REL_VERSION }}
- name: Prepare build archive
run: |
mkdir -p _dist/blocks
cp -R assets _dist/assets
cp -R blocks/compiled _dist/blocks/compiled
cp -R backend _dist/backend
cp LICENSE _dist/LICENSE
cp config.sample.yml _dist/config.sample.yml
cd _dist/server
npm ci --omit=dev
cd -
find ./_dist/ -printf "%P\n" | tar -czf wiki-js.tar.gz --no-recursion -C ./_dist/ -T -
- name: Upload Build Artifact
uses: actions/upload-artifact@v7
with:
name: build
path: wiki-js.tar.gz