diff --git a/.github/workflows/gh-pages-deploy.yml b/.github/workflows/gh-pages-deploy.yml index e13fbc6..95d7bc9 100644 --- a/.github/workflows/gh-pages-deploy.yml +++ b/.github/workflows/gh-pages-deploy.yml @@ -22,19 +22,19 @@ jobs: - name: Create environment file run: | - echo "export const environment = {" > src/environments/environment.ts - echo " production: true," >> src/environments/environment.ts - echo " firebase: {" >> src/environments/environment.ts - echo " projectId: '${{ secrets.FIREBASE_PROJECT_ID }}'," >> src/environments/environment.ts - echo " appId: '${{ secrets.FIREBASE_APP_ID }}'," >> src/environments/environment.ts - echo " storageBucket: '${{ secrets.FIREBASE_STORAGE_BUCKET }}'," >> src/environments/environment.ts - echo " apiKey: '${{ secrets.FIREBASE_API_KEY }}'," >> src/environments/environment.ts - echo " authDomain: '${{ secrets.FIREBASE_AUTH_DOMAIN }}'," >> src/environments/environment.ts - echo " messagingSenderId: '${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}'" >> src/environments/environment.ts - echo " }," >> src/environments/environment.ts - echo " app_release_date: '${{ github.event.head_commit.timestamp }}'," >> src/environments/environment.ts - echo " app_release_version: '${{ github.sha }}'" >> src/environments/environment.ts - echo "};" >> src/environments/environment.ts + echo "export const environment = {" > src/environments/environment.prod.ts + echo " production: true," >> src/environments/environment.prod.ts + echo " firebase: {" >> src/environments/environment.prod.ts + echo " projectId: '${{ secrets.FIREBASE_PROJECT_ID }}'," >> src/environments/environment.prod.ts + echo " appId: '${{ secrets.FIREBASE_APP_ID }}'," >> src/environments/environment.prod.ts + echo " storageBucket: '${{ secrets.FIREBASE_STORAGE_BUCKET }}'," >> src/environments/environment.prod.ts + echo " apiKey: '${{ secrets.FIREBASE_API_KEY }}'," >> src/environments/environment.prod.ts + echo " authDomain: '${{ secrets.FIREBASE_AUTH_DOMAIN }}'," >> src/environments/environment.prod.ts + echo " messagingSenderId: '${{ secrets.FIREBASE_MESSAGING_SENDER_ID }}'" >> src/environments/environment.prod.ts + echo " }," >> src/environments/environment.prod.ts + echo " app_release_date: '${{ github.event.head_commit.timestamp }}'," >> src/environments/environment.prod.ts + echo " app_release_version: '${{ github.sha }}'" >> src/environments/environment.prod.ts + echo "};" >> src/environments/environment.prod.ts - name: Install dependencies run: npm ci @@ -42,8 +42,17 @@ jobs: - name: Build application run: ng build --configuration production - - name: Ensure Deployment Directory Exists - run: mkdir -p dist/self-service-desk/browser + - name: Create .nojekyll file + run: touch dist/self-service-desk/browser/.nojekyll - name: Deploy to GitHub Pages - run: ng deploy --project=selfservicedesk + run: ng deploy --project=selfservicedesk --no-silent + env: + FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }} + FIREBASE_APP_ID: ${{ secrets.FIREBASE_APP_ID }} + FIREBASE_STORAGE_BUCKET: ${{ secrets.FIREBASE_STORAGE_BUCKET }} + FIREBASE_API_KEY: ${{ secrets.FIREBASE_API_KEY }} + FIREBASE_AUTH_DOMAIN: ${{ secrets.FIREBASE_AUTH_DOMAIN }} + FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.FIREBASE_MESSAGING_SENDER_ID }} + APP_RELEASE_DATE: ${{ github.event.head_commit.timestamp }} + APP_RELEASE_VERSION: ${{ github.sha }} diff --git a/angular.json b/angular.json index ec73b5d..3f3ad2b 100644 --- a/angular.json +++ b/angular.json @@ -67,6 +67,19 @@ "configurations": { "production": { "baseHref": "/SelfServiceDesk/", + "optimization": true, + "outputHashing": "all", + "sourceMap": false, + "namedChunks": false, + "extractLicenses": true, + "vendorChunk": false, + "buildOptimizer": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ], "budgets": [ { "type": "initial", @@ -79,14 +92,19 @@ "maximumError": "8kB" } ], - "outputHashing": "all", "serviceWorker": true, "ngswConfigPath": "ngsw-config.json" }, "development": { "optimization": false, "extractLicenses": false, - "sourceMap": true + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] } }, "defaultConfiguration": "production" @@ -184,7 +202,14 @@ "deploy": { "builder": "angular-cli-ghpages:deploy", "options": { - "baseHref": "/SelfServiceDesk/" + "baseHref": "/SelfServiceDesk/", + "configuration": "production", + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.prod.ts" + } + ] } } } diff --git a/src/environments/environment.development.ts b/src/environments/environment.development.ts new file mode 100644 index 0000000..f274e5e --- /dev/null +++ b/src/environments/environment.development.ts @@ -0,0 +1 @@ +export const environment = {}; diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts new file mode 100644 index 0000000..528fc63 --- /dev/null +++ b/src/environments/environment.prod.ts @@ -0,0 +1,13 @@ +export const environment = { + production: true, + firebase: { + projectId: process.env['FIREBASE_PROJECT_ID'], + appId: process.env['FIREBASE_APP_ID'], + storageBucket: process.env['FIREBASE_STORAGE_BUCKET'], + apiKey: process.env['FIREBASE_API_KEY'], + authDomain: process.env['FIREBASE_AUTH_DOMAIN'], + messagingSenderId: process.env['FIREBASE_MESSAGING_SENDER_ID'], + app_release_date: process.env['APP_RELEASE_DATE'], + app_release_version: process.env['APP_RELEASE_VERSION'], + }, +}; \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 5985f6c..4845f02 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -17,6 +17,7 @@ "importHelpers": true, "target": "ES2022", "module": "ES2022", + "types": ["node"] }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false,