name: Build and Deploy on: push: branches: - main jobs: verify: runs-on: laralog-ci steps: - uses: https://gitea.neatcn.com/gouki/action-checkout@v4 - name: Verify CI runtime run: | php -r 'exit(PHP_VERSION_ID >= 80200 ? 0 : 1);' node --version composer --version - name: Prepare env (sqlite for package discovery) run: | cp .env.example .env mkdir -p database touch database/database.sqlite - name: Install backend dependencies run: | composer install --no-interaction --prefer-dist npm install - name: Build backend assets run: npm run build - name: Persist built assets for deploy job run: | dest="/ci-artifacts/build-${{ gitea.sha }}" test -d /ci-artifacts rm -rf "$dest" mkdir -p "$dest" cp -a public/build/. "$dest/" test -f "$dest/manifest.json" deploy: needs: verify runs-on: production steps: - uses: https://gitea.neatcn.com/gouki/action-checkout@v4 - name: Restore built assets from runner host run: | src="/opt/laralog/ci-artifacts/build-${{ gitea.sha }}" test -d "$src" mkdir -p public/build cp -a "$src/." public/build/ test -f public/build/manifest.json - uses: https://gitea.neatcn.com/gouki/deployment-toolkit/actions/laravel-release@v1.0.6 with: source-dir: . deploy-root: /opt/1panel/apps/openresty/openresty/www/sites/laralog.neatstudio.com/index container-deploy-root: /www/sites/laralog.neatstudio.com/index php-container: php83-1panel-php-1 healthcheck-url: https://laralog.neatstudio.com/up backup-command: "mysqldump -h10.0.4.7 -ularalog -p'Laralog#2026' laralog | gzip > /opt/laralog/backups/laralog-${{ gitea.sha }}.sql.gz" release-id: ${{ gitea.sha }}