Make icons path configurable instead of hardcoded (#455) #68
This file contains hidden or 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 | |
| # Permissions needed to create PR and write content | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| 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 | |
| # Instead of direct commit/push, create a PR | |
| - name: Create Pull Request | |
| id: cpr | |
| uses: peter-evans/create-pull-request@v6 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| # More descriptive commit message | |
| commit-message: 'chore: Update API documentation JSON files' | |
| # Use bot account for better tracking | |
| committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | |
| author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | |
| # Unique branch name using run number to avoid conflicts | |
| branch: api-docs-update-${{ github.run_number }} | |
| # Auto-delete branch after merge | |
| delete-branch: true | |
| title: 'chore: Update API documentation JSON files' | |
| # Detailed PR description with context | |
| body: | | |
| ## Auto-generated API Documentation Update | |
| This PR contains automatically generated API documentation files. | |
| ### Changes | |
| - Updated JSON API files based on latest component changes | |
| ### Workflow Run | |
| - Triggered by commit: ${{ github.sha }} | |
| - Run ID: ${{ github.run_id }} | |
| --- | |
| 🤖 This PR was automatically created by the documentation workflow. | |
| # Labels for organization and to skip changelog | |
| labels: | | |
| documentation | |
| automated | |
| skip-changelog | |
| # Auto-merge the PR (requires repo settings to allow auto-merge) | |
| - name: Enable Pull Request Automerge | |
| if: steps.cpr.outputs.pull-request-operation == 'created' | |
| uses: peter-evans/enable-pull-request-automerge@v3 | |
| with: | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| pull-request-number: ${{ steps.cpr.outputs.pull-request-number }} | |
| merge-method: squash | |
| # Auto-approve the PR so it can be merged | |
| - name: Auto approve PR | |
| if: steps.cpr.outputs.pull-request-operation == 'created' | |
| uses: hmarr/auto-approve-action@v4 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| pull-request-number: ${{ steps.cpr.outputs.pull-request-number }} | |
| # Build job | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: generate-api-data | |
| # Only run if generate-api-data succeeded or was skipped (not failed) | |
| if: always() && (needs.generate-api-data.result == 'success' || needs.generate-api-data.result == 'skipped') | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ssh-key: ${{ secrets.DEPLOY_KEY }} | |
| # Explicitly checkout master to get latest changes after PR merge | |
| ref: master | |
| - 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 | |
| # Only deploy if build succeeded | |
| if: success() | |
| 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 |