Files
hereconnect/.gitea/workflows/deploy.yaml
T
2024-12-02 17:02:47 +02:00

83 lines
3.3 KiB
YAML

name: Deploy frontend
run-name: ${{ github.actor }} deployed to build branch
on:
push:
branches:
- main
paths:
- 'apps/frontend/**'
- '.gitea/workflows/deploy.yaml'
jobs:
frontend:
runs-on: ubuntu-latest
container:
volumes:
- /www/hereconnect.condev.ru:/www/hereconnect.condev.ru
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22'
- name: Set up Bun
uses: oven-sh/setup-bun@v1
with:
bun-version: 'latest' # или укажите конкретную версию, например, '1.0.0'
# - name: Cache apt packages
# uses: actions/cache@v3
# with:
# path: /var/cache/apt
# key: ${{ runner.os }}-apt-cache
# restore-keys: ${{ runner.os }}-apt-cache
# - name: Cache pnpm dependencies
# uses: actions/cache@v3
# with:
# path: ~/.pnpm-store
# key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
# restore-keys: ${{ runner.os }}-pnpm-
# - name: install zopfli & brotli
# run: apt update && apt install -y zopfli brotli
- name: install dependencies
run: |
corepack enable pnpm && corepack use pnpm@8.15.9
pnpm deploy --filter frontend --frozen-lockfile build/frontend
- name: build production
run: cd build/frontend && bun run build-only -- --emptyOutDir --outDir /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-prod/
# - name: compress production with Brotli
# run: |
# find /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-prod/ -type f \( -name '*.js' -o -name '*.css' -o -name '*.html' -o -name '*.svg' -o -name '*.eot' -o -name '*.ttf' -o -name '*.woff' -o -name '*.woff2' \) | while read -r file; do
# brotli -k -q 11 "$file"
# done
- name: compress production with Brotli
uses: StefH/ghaction-CompressFiles@v2
with:
path: /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-prod/
extensions: '.css,.html,.js,.svg,.eot,.ttf,.woff,.woff2'
tools: 'brotli'
- name: deploy production
run: mv -v /www/hereconnect.condev.ru/current-prod /www/hereconnect.condev.ru/old-prod && mv -v /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-prod /www/hereconnect.condev.ru/current-prod && rm -rf /www/hereconnect.condev.ru/old-prod
- name: build dev
run: cd build/frontend && NODE_OPTIONS="--max-old-space-size=4096" bun run build-only -- --emptyOutDir --mode development --outDir /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-dev/
- name: deploy dev
run: mv -v /www/hereconnect.condev.ru/current-dev /www/hereconnect.condev.ru/old-dev && mv -v /www/hereconnect.condev.ru/build-${{env.GITHUB_SHA}}-dev /www/hereconnect.condev.ru/current-dev && rm -rf /www/hereconnect.condev.ru/old-dev
- name: cleanup build directories
if: always()
run: |
echo "Found directories:"
find /www/hereconnect.condev.ru/ -maxdepth 1 -type d -name "build-${{env.GITHUB_SHA}}-*"
echo "Deleting directories:"
find /www/hereconnect.condev.ru/ -maxdepth 1 -type d -name "build-${{env.GITHUB_SHA}}-*" -print -exec rm -rf {} +