Section 9 first custom JS action - final #10
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
### Composite actions | |
name: Deployment | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v4 | |
# - name: Cache dependencies | |
# id: cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: node_modules | |
# key: deps-node-modules-${{ hashFiles('**/package-lock.json') }} | |
# - name: Install dependencies | |
# if: steps.cache.outputs.cache-hit != 'true' | |
# run: npm ci | |
# DKDK use custom composite action | |
- name: Load & cache dependencies | |
id: cache-deps | |
# DKDK no need to indicate file (action.yml) | |
uses: ./.github/actions/cached-deps | |
with: | |
caching: 'false' | |
# DKDK check outputs defined at action.yml | |
- name: Output information | |
run: echo "Cache used? ${{ steps.cache-deps.outputs.used-cache }}" | |
- name: Lint code | |
run: npm run lint | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v4 | |
# - name: Cache dependencies | |
# id: cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: node_modules | |
# key: deps-node-modules-${{ hashFiles('**/package-lock.json') }} | |
# - name: Install dependencies | |
# if: steps.cache.outputs.cache-hit != 'true' | |
# run: npm ci | |
- name: Load & cache dependencies | |
# DKDK no need to indicate file (action.yml) | |
uses: ./.github/actions/cached-deps | |
- name: Test code | |
id: run-tests | |
run: npm run test | |
- name: Upload test report | |
if: failure() && steps.run-tests.outcome == 'failure' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: test-report | |
path: test.json | |
build: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v4 | |
# - name: Cache dependencies | |
# id: cache | |
# uses: actions/cache@v4 | |
# with: | |
# path: node_modules | |
# key: deps-node-modules-${{ hashFiles('**/package-lock.json') }} | |
# - name: Install dependencies | |
# if: steps.cache.outputs.cache-hit != 'true' | |
# run: npm ci | |
- name: Load & cache dependencies | |
# DKDK no need to indicate file (action.yml) | |
uses: ./.github/actions/cached-deps | |
- name: Build website | |
run: npm run build | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dist-files | |
path: dist | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Get code | |
uses: actions/checkout@v4 | |
- name: Get build artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: dist-files | |
path: ./dist | |
- name: Output contents | |
run: ls | |
- name: Deploy site | |
run: echo "Deploying..." | |
# # DKDK use custom javascript actions: commented out as it uses AWS S3 | |
# information: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Get code | |
# uses: actions/checkout@v4 | |
# - name: Run custom action | |
# uses: ./.github/actions/deploy-s3-javascript | |
# # DKDK aws deploy job | |
# deploy-aws: | |
# permissions: | |
# id-token: write | |
# contents: read | |
# needs: build | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Get code | |
# uses: actions/checkout@v3 | |
# - name: Get build artifacts | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: dist-files | |
# path: ./dist | |
# - name: Output contents | |
# run: ls | |
# - name: Deploy site | |
# id: deploy | |
# uses: ./.github/actions/deploy-s3-docker | |
# env: | |
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
# with: | |
# bucket: gha-security-hosting-demo | |
# dist-folder: ./dist | |
# # bucket-region: us-east-2 | |
# - name: Output information | |
# run: | | |
# echo "Live URL: ${{ steps.deploy.outputs.website-url }}" |