Skip to content

Add GitHub Actions auto-deploy workflow #1

Add GitHub Actions auto-deploy workflow

Add GitHub Actions auto-deploy workflow #1

Workflow file for this run

name: Deploy to Firebase
on:
push:
branches:
- main
- claude/nuxt4-ui-firebase-setup-011CUqZEZEx1ZMKWjMwKBmSu
workflow_dispatch:
jobs:
deploy:
name: Build and Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Create .env file
run: |
cat > .env << 'EOF'
# Firebase Client Config (Public)
NUXT_PUBLIC_FIREBASE_API_KEY=${{ secrets.NUXT_PUBLIC_FIREBASE_API_KEY }}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=${{ secrets.NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN }}
NUXT_PUBLIC_FIREBASE_PROJECT_ID=${{ secrets.NUXT_PUBLIC_FIREBASE_PROJECT_ID }}
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET=${{ secrets.NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET }}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=${{ secrets.NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID }}
NUXT_PUBLIC_FIREBASE_APP_ID=${{ secrets.NUXT_PUBLIC_FIREBASE_APP_ID }}
# Firebase Admin (Server-side)
FIREBASE_PRIVATE_KEY="${{ secrets.FIREBASE_PRIVATE_KEY }}"
FIREBASE_CLIENT_EMAIL="${{ secrets.FIREBASE_CLIENT_EMAIL }}"
# Base.al OAuth
OAUTH_BASE_CLIENT_ID=${{ secrets.OAUTH_BASE_CLIENT_ID }}
OAUTH_BASE_CLIENT_SECRET=${{ secrets.OAUTH_BASE_CLIENT_SECRET }}
OAUTH_BASE_REDIRECT_URI=${{ secrets.OAUTH_BASE_REDIRECT_URI }}
NUXT_PUBLIC_OAUTH_BASE_AUTHORIZE_URL=https://accounts.base.al/oauth/authorize
NUXT_PUBLIC_OAUTH_BASE_TOKEN_URL=https://accounts.base.al/oauth/token
NUXT_PUBLIC_OAUTH_BASE_USERINFO_URL=https://accounts.base.al/oauth/userinfo
EOF
- name: Build application
run: npm run build
- name: Deploy to Firebase
uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: ${{ secrets.GITHUB_TOKEN }}
firebaseServiceAccount: ${{ secrets.FIREBASE_SERVICE_ACCOUNT }}
projectId: albaniandotdev
channelId: live
- name: Deploy Firestore rules
run: |
echo '${{ secrets.FIREBASE_SERVICE_ACCOUNT }}' > service-account.json
export GOOGLE_APPLICATION_CREDENTIALS=service-account.json
npx firebase-tools deploy --only firestore:rules,firestore:indexes --project albaniandotdev --non-interactive --force