Skip to content

Deploy to Development by @dharmesh-hemaram on v4.0.47.1 #17

Deploy to Development by @dharmesh-hemaram on v4.0.47.1

Deploy to Development by @dharmesh-hemaram on v4.0.47.1 #17

name: Deploy [Extension & Options Page]
run-name: Deploy to ${{ inputs.environment }} by @${{ github.actor }} on ${{ inputs.version || github.ref_name }}
on:
workflow_dispatch:
inputs:
environment:
description: 'Environment of release'
type: environment
default: Development
required: true
upload_extension:
description: 'Extension to chrome webstore'
type: boolean
default: false
required: true
publish_extension:
description: 'Publish extension'
type: boolean
default: false
required: true
version:
description: 'Version (v4.0.0.0)'
type: string
jobs:
main:
name: Build & Bundle & Publish
environment:
name: ${{inputs.environment}}
url: ${{ steps.release.outputs.url}}
runs-on: ubuntu-latest
permissions:
contents: write
actions: read
discussions: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 24
registry-url: https://npm.pkg.github.com
scope: ${{github.repository_owner}}
cache: 'npm'
- uses: nrwl/nx-set-shas@v4
- run: npm ci
- run: npx nx report
- name: Build Options Page
run: |
npx nx run acf-options-page:build --prod --base ${{ vars.PUBLIC_URL }} --verbose --skip-nx-cache
env:
VITE_PUBLIC_VARIANT: ${{vars.VITE_PUBLIC_VARIANT}}
VITE_PUBLIC_CHROME_EXTENSION_ID: ${{vars.VITE_PUBLIC_CHROME_EXTENSION_ID}}
VITE_PUBLIC_I18N: ${{vars.VITE_PUBLIC_I18N}}
VITE_PUBLIC_GOOGLE_ADS_SLOT: ${{vars.VITE_PUBLIC_GOOGLE_ADS_SLOT}}
VITE_PUBLIC_GOOGLE_ADS_CLIENT: ${{vars.VITE_PUBLIC_GOOGLE_ADS_CLIENT}}
VITE_PUBLIC_FIREBASE_API_KEY: ${{vars.VITE_PUBLIC_FIREBASE_API_KEY}}
VITE_PUBLIC_FIREBASE_DATABASE_URL: ${{vars.VITE_PUBLIC_FIREBASE_DATABASE_URL}}
VITE_PUBLIC_FIREBASE_PROJECT_ID: ${{vars.VITE_PUBLIC_FIREBASE_PROJECT_ID}}
VITE_PUBLIC_FIREBASE_BUCKET: ${{vars.VITE_PUBLIC_FIREBASE_BUCKET}}
VITE_PUBLIC_RELEASE_VERSION: ${{inputs.version || github.ref_name}}
VITE_PUBLIC_OPTIONS_PAGE_SENTRY_DSN: ${{vars.VITE_PUBLIC_OPTIONS_PAGE_SENTRY_DSN}}
- name: Build Extension
run: |
npx nx run acf-extension:build --prod --verbose --skip-nx-cache
env:
VITE_PUBLIC_NAME: ${{vars.VITE_PUBLIC_NAME}}
VITE_PUBLIC_VARIANT: ${{vars.VITE_PUBLIC_VARIANT}}
VITE_PUBLIC_FIREBASE_API_KEY: ${{vars.VITE_PUBLIC_FIREBASE_API_KEY}}
VITE_PUBLIC_FIREBASE_DATABASE_URL: ${{vars.VITE_PUBLIC_FIREBASE_DATABASE_URL}}
VITE_PUBLIC_FIREBASE_PROJECT_ID: ${{vars.VITE_PUBLIC_FIREBASE_PROJECT_ID}}
VITE_PUBLIC_FIREBASE_BUCKET: ${{vars.VITE_PUBLIC_FIREBASE_BUCKET}}
VITE_PUBLIC_FIREBASE_FUNCTIONS_URL: ${{vars.VITE_PUBLIC_FIREBASE_FUNCTIONS_URL}}
VITE_PUBLIC_RELEASE_VERSION: ${{inputs.version || github.ref_name}}
VITE_PUBLIC_EXTENSION_SENTRY_DSN: ${{vars.VITE_PUBLIC_EXTENSION_SENTRY_DSN}}
DISCORD_CLIENT_ID: ${{vars.DISCORD_CLIENT_ID}}
OAUTH_CLIENT_ID: ${{vars.OAUTH_CLIENT_ID}}
EDGE_OAUTH_CLIENT_ID: ${{vars.EDGE_OAUTH_CLIENT_ID}}
PUBLIC_URL: ${{vars.PUBLIC_URL}}
API_SECRET: ${{vars.API_SECRET}}
MEASUREMENT_ID: ${{vars.MEASUREMENT_ID}}
SENTRY_AUTH_TOKEN: ${{secrets.SENTRY_AUTH_TOKEN}}
- name: Determine Firebase Target
run: |
VARIANT=$(echo "${{ vars.VITE_PUBLIC_VARIANT }}" | tr '[:upper:]' '[:lower:]')
TARGET="auto-clicker-auto-fill-$VARIANT"
echo "TARGET=$TARGET" >> $GITHUB_ENV
- name: Options Page to Firebase Hosting
uses: FirebaseExtended/action-hosting-deploy@v0
with:
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT }}'
projectId: auto-clicker-autofill
target: ${{ env.TARGET }}
channelId: live
- name: Bundle Projects
run: |
cd apps/acf-extension/dist
zip -r ../../../acf-extension-${{vars.VITE_PUBLIC_VARIANT}}.zip .
cd ../../../
- name: Extension to Chrome Webstore
if: ${{ inputs.upload_extension }}
uses: mnao305/chrome-extension-upload@v5.0.0
id: chrome-extension-upload
with:
file-path: acf-extension-${{vars.VITE_PUBLIC_VARIANT}}.zip
extension-id: ${{ vars.VITE_PUBLIC_CHROME_EXTENSION_ID }}
client-id: ${{ secrets.CLIENT_ID }}
client-secret: ${{ secrets.CLIENT_SECRET }}
refresh-token: ${{ secrets.REFRESH_TOKEN }}
publish: ${{inputs.publish_extension}}
glob: true
- name: Release to Github
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
id: release
with:
prerelease: ${{ vars.VITE_PUBLIC_VARIANT == 'BETA' || vars.VITE_PUBLIC_VARIANT == 'DEV'}}
generate_release_notes: true
discussion_category_name: 'Release'