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 {} +