Files
log-lottery/.github/workflows/release.yml
2025-12-05 17:34:12 +08:00

81 lines
2.0 KiB
YAML

name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '22.x'
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Build for production
run: pnpm build
- name: Build for file protocol
run: pnpm build:file
- name: Prepare directories
run: |
mv dist dist-prod
mv dist-prod/index.html dist-prod/404.html
mv dist-file dist-file-prod
- name: Create source code archive
run: |
mkdir -p temp_source
cp -r .git temp_source/.git
cp -r src temp_source/src
cp -r public temp_source/public
cp -r .github temp_source/.github
cp package.json temp_source/
cp vite.config.ts temp_source/
cp tsconfig.json temp_source/
cp tsconfig.node.json temp_source/
cp index.html temp_source/
cp README.md temp_source/
cp Dockerfile temp_source/
tar -czf source-code.tar.gz -C temp_source .
rm -rf temp_source
- name: Create production build archive
run: |
tar -czf production-build.tar.gz dist-prod
- name: Create file protocol build archive
run: |
tar -czf file-protocol-build.tar.gz dist-file-prod
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
source-code.tar.gz
production-build.tar.gz
file-protocol-build.tar.gz
draft: true
prerelease: false
generate_release_notes: true