diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..a66dcea --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,78 @@ +name: "Build and Deploy" +on: + push: + branches: + - main + + pull_request: + types: + - opened + - synchronize + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + Build: + runs-on: ubuntu-latest + timeout-minutes: 15 + strategy: + matrix: + include: + - name: dashboard-filter-panel + outputFolder: dist/dashboard-filter-panel/browser/ + - name: drag-n-drop-chart-library + outputFolder: build/ + - name: report-builder + outputFolder: dist/report-builder/browser/ + - name: wearables-dashboard + outputFolder: dist/ + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup node + uses: actions/setup-node@v3 + + - name: Cache node modules + uses: actions/cache@v2 + with: + path: ${{ matrix.name }}/node_modules + key: ${{ runner.os }}-node-${{ matrix.name }}-${{ hashFiles(format('{0}/{1}', matrix.name, 'package-lock.json')) }} + + - name: Build front end + run: | + cd ${{ matrix.name }} + npm ci + npm run build:ci + + - name: Copy Folder + uses: keithweaver/aws-s3-github-action@v1.0.0 + if: github.event_name != 'pull_request' + with: + command: cp + source: ./${{ matrix.name }}/${{ matrix.outputFolder }}/ + destination: s3://showcases.luzmo.com/${{ matrix.name }}/ + aws_access_key_id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws_region: eu-west-1 + flags: --recursive + + Invalidate_Cloudfront: + runs-on: ubuntu-latest + timeout-minutes: 15 + needs: Build + # if: github.event_name != 'pull_request' + + steps: + - name: Invalidate CloudFront + uses: chetan/invalidate-cloudfront-action@v2 + env: + DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION }} + PATHS: "/*" + AWS_REGION: "us-east-1" + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + diff --git a/.gitignore b/.gitignore index a88e8d5..e92ad3a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .angular/ .nx/ node_modules/ +**/dist/ diff --git a/dashboard-filter-panel/angular.json b/dashboard-filter-panel/angular.json index 6339c4c..70928c8 100755 --- a/dashboard-filter-panel/angular.json +++ b/dashboard-filter-panel/angular.json @@ -41,7 +41,7 @@ "build": { "builder": "@angular/build:application", "options": { - "outputPath": "dist/first-app", + "outputPath": "dist/dashboard-filter-panel", "index": "src/index.html", "browser": "src/main.ts", "polyfills": ["zone.js"], diff --git a/dashboard-filter-panel/package.json b/dashboard-filter-panel/package.json index b5aa75c..31bb42f 100755 --- a/dashboard-filter-panel/package.json +++ b/dashboard-filter-panel/package.json @@ -5,8 +5,10 @@ "ng": "ng", "start": "ng serve", "build": "ng build", - "watch": "ng build --watch --configuration development" + "watch": "ng build --watch --configuration development", + "build:ci": "npx ng build --base-href /dashboard-filter-panel/" }, + "distDirectory": "dist/dashboard-filter-panel/browser/", "private": true, "dependencies": { "@angular/animations": "^18.0.1", diff --git a/dashboard-filter-panel/src/index.html b/dashboard-filter-panel/src/index.html index db8a21d..0fbef82 100755 --- a/dashboard-filter-panel/src/index.html +++ b/dashboard-filter-panel/src/index.html @@ -2,7 +2,7 @@
-