Refactor file extension comparison logic to be case-insensitive (#407) #48
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: Build and publish the documentation app | |
on: | |
push: | |
branches: | |
- 'master' | |
paths: | |
- 'package.json' | |
- 'angular.json' | |
- 'tsconfig.generator.json' | |
- 'api-generator/**' | |
- 'projects/cps-ui-kit/src/**' | |
- 'projects/composition/**' | |
- '.github/**' | |
jobs: | |
# Generate api data | |
generate-api-data: | |
if: "!contains(github.event.head_commit.message, 'Update autogenerated JSON files')" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Use Node.js v20.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
registry-url: 'https://registry.npmjs.org' | |
- name: Install dependencies | |
run: npm ci | |
- name: Generate API data | |
working-directory: ./projects/composition | |
run: | | |
npm run generate-json-api | |
- name: Commit and push if there are any changes | |
working-directory: ./projects/composition | |
run: | | |
git config user.name github-actions | |
git config user.email [email protected] | |
git pull origin master | |
git add ./src/app/api-data | |
if [[ -n "$(git status --porcelain)" ]]; then | |
git commit -m "Update autogenerated JSON files" | |
git push origin HEAD:master | |
fi | |
# Build job | |
build: | |
runs-on: ubuntu-latest | |
needs: generate-api-data | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
ssh-key: ${{ secrets.DEPLOY_KEY }} | |
- name: Fetch latest commits | |
run: git pull origin master | |
- name: Use Node.js v20.x | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20.x | |
registry-url: 'https://registry.npmjs.org' | |
- name: Cache node modules | |
id: cache-npm | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Install dependencies | |
run: npm ci | |
- name: Build CPS UI Kit Component Library | |
run: npm run build | |
- name: Build documentation app | |
run: npm run build:documentation | |
- name: Copy 404.html from source to dist | |
run: cp ./projects/composition/src/404.html ./dist/composition/browser/404.html | |
- name: Upload Pages artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: dist/composition/browser | |
# Deploy job | |
deploy: | |
needs: build | |
permissions: | |
pages: write | |
id-token: write | |
# Deploy to the github-pages environment | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
# Specify runner + deployment step | |
runs-on: ubuntu-latest | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |