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: 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 && npm 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: 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 && npm 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: find /www/hereconnect.condev.ru/ -maxdepth 1 -type d -name "build-${{env.GITHUB_SHA}}-*" -exec rm -rf {} +