still getting build errors #3
Workflow file for this run
This file contains 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: ForestGEO Live Site Deployment Pipeline | |
on: | |
push: | |
branches: | |
- main | |
- 'forestgeo-app-*' | |
workflow_dispatch: | |
jobs: | |
# Production Job (only runs on main branch) | |
build-app-production: | |
if: github.ref == 'refs/heads/main' | |
runs-on: ubuntu-latest | |
environment: production | |
env: | |
AZURE_AD_CLIENT_SECRET_PRODUCTION: ${{ secrets.AZURE_AD_CLIENT_SECRET_PRODUCTION }} | |
AZURE_AD_CLIENT_ID_PRODUCTION: ${{ secrets.AZURE_AD_CLIENT_ID_PRODUCTION }} | |
AZURE_AD_TENANT_ID_PRODUCTION: ${{ secrets.AZURE_AD_TENANT_ID_PRODUCTION }} | |
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }} | |
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_URL }} | |
AZURE_SQL_USER: ${{ secrets.AZURE_SQL_USER }} | |
AZURE_SQL_PASSWORD: ${{ secrets.AZURE_SQL_PASSWORD }} | |
AZURE_SQL_SERVER: ${{ secrets.AZURE_SQL_SERVER }} | |
AZURE_SQL_DATABASE: ${{ secrets.AZURE_SQL_DATABASE }} | |
AZURE_SQL_PORT: ${{ secrets.AZURE_SQL_PORT }} | |
AZURE_STORAGE_SAS_CONNECTION_STRING: ${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} | |
AZURE_SQL_SCHEMA: ${{ secrets.AZURE_SQL_SCHEMA }} | |
AZURE_SQL_CATALOG_SCHEMA: ${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} | |
AZURE_STORAGE_CONNECTION_STRING: ${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} | |
NODE_ENV: production | |
PORT: 3000 | |
FG_PAT: ${{ secrets.FG_PAT }} | |
OWNER: ${{ secrets.OWNER }} | |
REPO: ${{ secrets.REPO }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18.x' | |
- name: create env file (in frontend/ directory) -- production | |
id: create-env-file-prod | |
if: github.ref == 'refs/heads/main' | |
run: | | |
touch frontend/.env | |
echo AZURE_AD_CLIENT_SECRET_PRODUCTION=${{ secrets.AZURE_AD_CLIENT_SECRET_PRODUCTION }} >> frontend/.env | |
echo AZURE_AD_CLIENT_ID_PRODUCTION=${{ secrets.AZURE_AD_CLIENT_ID_PRODUCTION }} >> frontend/.env | |
echo AZURE_AD_TENANT_ID_PRODUCTION=${{ secrets.AZURE_AD_TENANT_ID_PRODUCTION }} >> frontend/.env | |
echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> frontend/.env | |
echo NEXTAUTH_URL=${{ secrets.NEXTAUTH_URL }} >> frontend/.env | |
echo AZURE_SQL_USER=${{ secrets.AZURE_SQL_USER }} >> frontend/.env | |
echo AZURE_SQL_PASSWORD=${{ secrets.AZURE_SQL_PASSWORD }} >> frontend/.env | |
echo AZURE_SQL_SERVER=${{ secrets.AZURE_SQL_SERVER }} >> frontend/.env | |
echo AZURE_SQL_DATABASE=${{ secrets.AZURE_SQL_DATABASE }} >> frontend/.env | |
echo AZURE_SQL_PORT=${{ secrets.AZURE_SQL_PORT }} >> frontend/.env | |
echo AZURE_STORAGE_SAS_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} >> frontend/.env | |
echo AZURE_SQL_SCHEMA=${{ secrets.AZURE_SQL_SCHEMA }} >> frontend/.env | |
echo AZURE_SQL_CATALOG_SCHEMA=${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} >> frontend/.env | |
echo AZURE_STORAGE_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} >> frontend/.env | |
echo NODE_ENV=production >> frontend/.env | |
echo PORT=3000 >> frontend/.env | |
echo FG_PAT=${{ secrets.FG_PAT }} >> frontend/.env | |
echo OWNER=${{ secrets.OWNER }} >> frontend/.env | |
echo REPO=${{ secrets.REPO }} >> frontend/.env | |
- name: Write Certificate to File | |
run: | | |
echo "${{ secrets.CERTIFICATE }}" > frontend/DigiCertGlobalRootCA.crt.pem | |
- name: check env vars | |
run: printenv | grep AZURE | |
- name: check node env | |
run: echo "NODE_ENV is $NODE_ENV" | |
- name: Cache node modules | |
uses: actions/cache@v2 | |
with: | |
path: frontend/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Cache Next.js build | |
uses: actions/cache@v2 | |
with: | |
path: frontend/.next/cache | |
key: ${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/.next/cache') }} | |
restore-keys: | | |
${{ runner.os }}-next- | |
${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }} | |
- name: Install dependencies, build, and test | |
run: | | |
cd frontend/ | |
npm install | |
npm run build | |
npm run test --if-present | |
- name: Move directories into build/standalone to reduce app load | |
run: | | |
mv ./frontend/build/static ./frontend/build/standalone/build | |
mv ./frontend/public ./frontend/build/standalone | |
mv ./frontend/*.pem ./frontend/build/standalone/ | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-build | |
path: frontend/build/standalone | |
# Development Job (runs on forestgeo-app-* branches) | |
build-app-development: | |
if: startsWith(github.ref, 'refs/heads/forestgeo-app-') | |
runs-on: ubuntu-latest | |
environment: development | |
env: | |
AZURE_AD_CLIENT_SECRET_DEVELOPMENT: ${{ secrets.AZURE_AD_CLIENT_SECRET_DEVELOPMENT }} | |
AZURE_AD_CLIENT_ID_DEVELOPMENT: ${{ secrets.AZURE_AD_CLIENT_ID_DEVELOPMENT }} | |
AZURE_AD_TENANT_ID_DEVELOPMENT: ${{ secrets.AZURE_AD_TENANT_ID_DEVELOPMENT }} | |
NEXTAUTH_SECRET: ${{ secrets.NEXTAUTH_SECRET }} | |
NEXTAUTH_URL: ${{ secrets.NEXTAUTH_DEV_URL }} | |
AZURE_SQL_USER: ${{ secrets.AZURE_SQL_USER }} | |
AZURE_SQL_PASSWORD: ${{ secrets.AZURE_SQL_PASSWORD }} | |
AZURE_SQL_SERVER: ${{ secrets.AZURE_SQL_SERVER }} | |
AZURE_SQL_DATABASE: ${{ secrets.AZURE_SQL_DATABASE }} | |
AZURE_SQL_PORT: ${{ secrets.AZURE_SQL_PORT }} | |
AZURE_STORAGE_SAS_CONNECTION_STRING: ${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} | |
AZURE_SQL_SCHEMA: ${{ secrets.AZURE_SQL_SCHEMA }} | |
AZURE_SQL_CATALOG_SCHEMA: ${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} | |
AZURE_STORAGE_CONNECTION_STRING: ${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} | |
NODE_ENV: development | |
PORT: 3000 | |
FG_PAT: ${{ secrets.FG_PAT }} | |
OWNER: ${{ secrets.OWNER }} | |
REPO: ${{ secrets.REPO }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Node.js version | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18.x' | |
- name: create env file (in frontend/ directory) -- development | |
id: create-env-file-dev | |
if: startsWith(github.ref, 'refs/heads/forestgeo-app-') | |
run: | | |
touch frontend/.env | |
echo AZURE_AD_CLIENT_SECRET_DEVELOPMENT=${{ secrets.AZURE_AD_DEVELOPMENT_CLIENT_SECRET_DEVELOPMENT }} >> frontend/.env | |
echo AZURE_AD_CLIENT_ID_DEVELOPMENT=${{ secrets.AZURE_AD_DEVELOPMENT_CLIENT_ID_DEVELOPMENT }} >> frontend/.env | |
echo AZURE_AD_TENANT_ID_DEVELOPMENT=${{ secrets.AZURE_AD_DEVELOPMENT_TENANT_ID_DEVELOPMENT }} >> frontend/.env | |
echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> frontend/.env | |
echo NEXTAUTH_URL=${{ secrets.NEXTAUTH_DEV_URL }} >> frontend/.env | |
echo AZURE_SQL_USER=${{ secrets.AZURE_SQL_USER }} >> frontend/.env | |
echo AZURE_SQL_PASSWORD=${{ secrets.AZURE_SQL_PASSWORD }} >> frontend/.env | |
echo AZURE_SQL_SERVER=${{ secrets.AZURE_SQL_SERVER }} >> frontend/.env | |
echo AZURE_SQL_DATABASE=${{ secrets.AZURE_SQL_DATABASE }} >> frontend/.env | |
echo AZURE_SQL_PORT=${{ secrets.AZURE_SQL_PORT }} >> frontend/.env | |
echo AZURE_STORAGE_SAS_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_SAS_CONNECTION_STRING }} >> frontend/.env | |
echo AZURE_SQL_SCHEMA=${{ secrets.AZURE_SQL_SCHEMA }} >> frontend/.env | |
echo AZURE_SQL_CATALOG_SCHEMA=${{ secrets.AZURE_SQL_CATALOG_SCHEMA }} >> frontend/.env | |
echo AZURE_STORAGE_CONNECTION_STRING=${{ secrets.AZURE_STORAGE_CONNECTION_STRING }} >> frontend/.env | |
echo NODE_ENV=development >> frontend/.env | |
echo PORT=3000 >> frontend/.env | |
echo FG_PAT=${{ secrets.FG_PAT }} >> frontend/.env | |
echo OWNER=${{ secrets.OWNER }} >> frontend/.env | |
echo REPO=${{ secrets.REPO }} >> frontend/.env | |
- name: Write Certificate to File | |
run: | | |
echo "${{ secrets.CERTIFICATE }}" > frontend/DigiCertGlobalRootCA.crt.pem | |
- name: check env vars | |
run: printenv | grep AZURE | |
- name: check node env | |
run: echo "NODE_ENV is $NODE_ENV" | |
- name: Cache node modules | |
uses: actions/cache@v2 | |
with: | |
path: frontend/node_modules | |
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-node- | |
- name: Cache Next.js build | |
uses: actions/cache@v2 | |
with: | |
path: frontend/.next/cache | |
key: ${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/.next/cache') }} | |
restore-keys: | | |
${{ runner.os }}-next- | |
${{ runner.os }}-next-${{ hashFiles('**/package-lock.json') }} | |
- name: Install dependencies, build, and test | |
run: | | |
cd frontend/ | |
npm install | |
npm run build | |
npm run test --if-present | |
- name: Move directories into build/standalone to reduce app load | |
run: | | |
mv ./frontend/build/static ./frontend/build/standalone/build | |
mv ./frontend/public ./frontend/build/standalone | |
mv ./frontend/*.pem ./frontend/build/standalone/ | |
- name: Upload build artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: app-build | |
path: frontend/build/standalone | |
deploy-app: | |
needs: [build-app-production, build-app-development] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: app-build | |
path: frontend/build/standalone | |
- name: Download build artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: app-build | |
path: frontend/build/standalone | |
# Deploy to production environment (runs only on main branch) | |
- name: 'Deploy to Azure Web App (main)' | |
if: github.ref == 'refs/heads/main' | |
uses: azure/webapps-deploy@v2 | |
with: | |
app-name: 'forestgeo-livesite' | |
slot-name: 'Production' | |
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_852346BD764D45D08854E6679137F844 }} | |
package: ./frontend/build/standalone | |
# Deploy to development environment (runs on forestgeo-app-* branches) | |
- name: 'Deploy to Azure Web App (development)' | |
if: startsWith(github.ref, 'refs/heads/forestgeo-app-') | |
uses: azure/webapps-deploy@v2 | |
with: | |
app-name: 'forestgeo-livesite' | |
slot-name: 'development' | |
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_DEVELOPMENT }} | |
package: ./frontend/build/standalone |