Deploy GitHub Pages #723
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy GitHub Pages | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths: | |
| - 'src/**/*' | |
| - 'tests/**/*' | |
| - '.github/workflows/github-pages.yml' | |
| - '**/vite*' | |
| - '**/tailwind*' | |
| - '**/rollup*' | |
| - '**/postcss*' | |
| - 'setup*' | |
| schedule: | |
| - cron: '0 */6 * * *' | |
| permissions: | |
| contents: write | |
| concurrency: | |
| group: github-pages | |
| cancel-in-progress: false | |
| env: | |
| ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
| ADMIN_EMAILS: ${{ secrets.ADMIN_EMAILS }} | |
| CLOUD_SQLITE_SECRET: ${{ secrets.CLOUD_SQLITE_SECRET }} | |
| CPID: ${{ secrets.CPID }} | |
| DEBUG: ${{ secrets.DEBUG }} | |
| DEBUG_DEVICES: ${{ secrets.DEBUG_DEVICES }} | |
| DJANGO_SECRET_KEY: ${{ secrets.DJANGO_SECRET_KEY }} | |
| DJANGO_SUPERUSER_EMAIL: ${{ secrets.DJANGO_SUPERUSER_EMAIL }} | |
| DJANGO_SUPERUSER_PASSWORD: ${{ secrets.DJANGO_SUPERUSER_PASSWORD }} | |
| DJANGO_SUPERUSER_USERNAME: ${{ secrets.DJANGO_SUPERUSER_USERNAME }} | |
| FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} | |
| FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} | |
| FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }} | |
| FIREBASE_DATABASE_URL: ${{ secrets.FIREBASE_DATABASE_URL }} | |
| FIREBASE_MEASUREMENT_ID: ${{ secrets.FIREBASE_MEASUREMENT_ID }} | |
| FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }} | |
| FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }} | |
| FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }} | |
| G_API: ${{ secrets.G_API }} | |
| G_CLIENT_ID: ${{ secrets.G_CLIENT_ID }} | |
| G_CLIENT_SECRET: ${{ secrets.G_CLIENT_SECRET }} | |
| G_PROJECT_ID: ${{ secrets.G_PROJECT_ID }} | |
| G_RECAPTCHA_SECRET: ${{ secrets.G_RECAPTCHA_SECRET }} | |
| G_RECAPTCHA_SITE_KEY: ${{ secrets.G_RECAPTCHA_SITE_KEY }} | |
| G_RECAPTCHA_V2_SECRET: ${{ secrets.G_RECAPTCHA_V2_SECRET }} | |
| G_RECAPTCHA_V2_SITE_KEY: ${{ secrets.G_RECAPTCHA_V2_SITE_KEY }} | |
| G_REDIRECT_URI: ${{ secrets.G_REDIRECT_URI }} | |
| GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN }} | |
| GITHUB_TOKEN_READ_ONLY: ${{ secrets.GITHUB_TOKEN_READ_ONLY }} | |
| GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }} | |
| GMAIL_SMTP_EMAIL: ${{ secrets.GMAIL_SMTP_EMAIL }} | |
| GMAIL_SMTP_PASS: ${{ secrets.GMAIL_SMTP_PASS }} | |
| H_CAPTCHA_SECRET: ${{ secrets.H_CAPTCHA_SECRET }} | |
| H_CAPTCHA_SITE: ${{ secrets.H_CAPTCHA_SITE }} | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| OPENAI_KEY: ${{ secrets.OPENAI_KEY }} | |
| OPENAI_KEY2: ${{ secrets.OPENAI_KEY2 }} | |
| SFTP_HOST: ${{ secrets.SFTP_HOST }} | |
| SFTP_PASS: ${{ secrets.SFTP_PASS }} | |
| SFTP_PATH: ${{ secrets.SFTP_PATH }} | |
| SFTP_USER: ${{ secrets.SFTP_USER }} | |
| SMS_PASSWORD: ${{ secrets.SMS_PASSWORD }} | |
| WHATSAPP_ADMIN: ${{ secrets.WHATSAPP_ADMIN }} | |
| CLOUDFLARED_TOKEN: ${{ secrets.CLOUDFLARED_TOKEN }} | |
| VITE_HOSTNAME: ${{ secrets.VITE_HOSTNAME }} | |
| VITE_PORT: ${{ secrets.VITE_PORT }} | |
| VITE_BACKEND_HOSTNAME_DEV: ${{ secrets.VITE_BACKEND_HOSTNAME_DEV }} | |
| VITE_BACKEND_HOSTNAME_PROD: ${{ secrets.VITE_BACKEND_HOSTNAME_PROD }} | |
| MYSQL_USER_PRODUCTION: ${{ secrets.MYSQL_USER_PRODUCTION }} | |
| MYSQL_PASS_PRODUCTION: ${{ secrets.MYSQL_PASS_PRODUCTION }} | |
| MYSQL_HOST_PRODUCTION: ${{ secrets.MYSQL_HOST_PRODUCTION }} | |
| MYSQL_USER: ${{ secrets.MYSQL_USER }} | |
| MYSQL_PASS: ${{ secrets.MYSQL_PASS }} | |
| MYSQL_DBNAME: ${{ secrets.MYSQL_DBNAME }} | |
| MYSQL_HOST: ${{ secrets.MYSQL_HOST }} | |
| jobs: | |
| build-and-deploy: | |
| timeout-minutes: 30 | |
| if: contains(github.repository, 'php-proxy-hunter') || contains(github.repository, 'android-traffic-exchange') | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check VITE secrets presence | |
| run: | | |
| if [ -z "$VITE_BACKEND_HOSTNAME_DEV" ]; then echo "VITE_BACKEND_HOSTNAME_DEV is NOT set"; else echo "VITE_BACKEND_HOSTNAME_DEV is set"; fi | |
| if [ -z "$VITE_BACKEND_HOSTNAME_PROD" ]; then echo "VITE_BACKEND_HOSTNAME_PROD is NOT set"; else echo "VITE_BACKEND_HOSTNAME_PROD is set"; fi | |
| - name: Checkout repository | |
| uses: actions/checkout@v5 | |
| with: | |
| token: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN }} | |
| repository: dimaslanjaka/php-proxy-hunter | |
| fetch-depth: 0 | |
| - name: Checkout gh-pages branch | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: gh-pages | |
| path: .deploy_git | |
| token: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN }} | |
| repository: dimaslanjaka/php-proxy-hunter | |
| fetch-depth: 0 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: '22' | |
| cache: 'yarn' | |
| cache-dependency-path: .husky/hash.txt | |
| - name: Init cache | |
| uses: actions/cache@v4 | |
| id: cache | |
| with: | |
| path: | | |
| ~/.yarn | |
| **/node_modules/** | |
| **/tmp/** | |
| **/dist/** | |
| **/yarn.lock | |
| **/public/** | |
| key: ${{ runner.os }}-node-${{ hashFiles('.husky/hash.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node-${{ hashFiles('.husky/hash.txt') }} | |
| ${{ runner.os }}-node- | |
| - name: Clean dist and tmp | |
| run: rm -rf dist/* tmp/* | |
| - name: Setup github actions | |
| run: node setup.js | |
| - name: Build Project | |
| run: yarn build | |
| - name: Build React app | |
| run: node vite-gh-pages.js | |
| - name: Build commit message | |
| id: commitmsg | |
| run: | | |
| LATEST_COMMIT=$(git rev-parse HEAD) | |
| COMMIT_URL="https://github.com/${{ github.repository }}/commit/$LATEST_COMMIT" | |
| echo "message=chore: deploy to gh-pages from $COMMIT_URL" >> $GITHUB_OUTPUT | |
| - name: Commit and push to gh-pages | |
| working-directory: .deploy_git | |
| env: | |
| ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN || secrets.GITHUB_TOKEN }} | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add . | |
| git commit -m "${{ steps.commitmsg.outputs.message }}" || echo "No changes to commit" | |
| git push "https://x-access-token:${ACCESS_TOKEN}@github.com/${{ github.repository }}.git" gh-pages |