ci(.github): migrate infra to GHA #6
Workflow file for this run
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: Bundle size | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
NX_PARALLEL: 6 # ubuntu-latest = 4-core CPU / 16 GB of RAM | macos-14-xlarge (arm) = 6-core CPU / 14 GB of RAM | |
NX_PREFER_TS_NODE: true | |
NX_VERBOSE_LOGGING: true | |
BROWSERSLIST_IGNORE_OLD_DATA: true | |
# Deploy host and URL | |
# DEPLOY_BASE_PATH: '' | |
DEPLOY_HOST: fluentuipr.z22.web.core.windows.net | |
DEPLOY_URL: https://fluentuipr.z22.web.core.windows.net/${{ github.event.pull_request.number || github.ref_name }} | |
# DEPLOYHOST: fluentuipr.z22.web.core.windows.net | |
# DEPLOYURL: https://${{ env.DEPLOYHOST }}/ | |
# GitHub Secrets for Azure access | |
# This service principal ("subscription" is a misleading name) only has access to the fluentuipr storage account | |
AZURE_SUBSCRIPTION: Azure PR deploy - NEW | |
AZURE_STORAGE: fluentuipr | |
IS_PR: ${{ github.event_name == 'pull_request' }} | |
TARGET_BRANCH: ${{ github.event.pull_request.base.ref || '' }} | |
DEPLOY_BASE_PATH: pull/${{github.event.pull_request.number}} | |
# DEPLOY_BASE_PATH: ${{ github.event.pull_request.number ? 'pull/' + github.event.pull_request.number : 'heads/' + github.ref_name }} | |
# SKIP_COMPONENT_GOVERNANCE_DETECTION: true | |
jobs: | |
bundle-size: | |
runs-on: macos-14-xlarge | |
permissions: | |
contents: 'read' | |
actions: 'read' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Derive appropriate SHAs for base and head for `nx affected` commands | |
uses: nrwl/nx-set-shas@v4 | |
with: | |
main-branch-name: 'master' | |
- uses: actions/setup-node@v4 | |
with: | |
cache: 'yarn' | |
node-version: '20' | |
- run: echo number of CPUs "$(getconf _NPROCESSORS_ONLN)" | |
- run: yarn install --frozen-lockfile | |
- name: Build packages & create reports (PR only) | |
if: github.event_name == 'pull_request' | |
run: yarn nx affected -t bundle-size --nxBail | |
- name: Compare bundle size with base (PR only) | |
if: github.event_name == 'pull_request' | |
run: npx monosize compare-reports --branch=${{ github.event.pull_request.base.ref }} --output=markdown --quiet > ./monosize-report.md | |
- name: Save PR number | |
run: echo ${{ github.event.number }} > pr.txt | |
- uses: actions/upload-artifact@v3 | |
if: ${{ github.event_name == 'pull_request' }} | |
with: | |
name: monosize-report | |
if-no-files-found: error | |
path: | | |
monosize-report.md | |
pr.txt | |
# - name: Read the monosize report | |
# id: read_report | |
# if: ${{ github.event_name == 'pull_request' }} | |
# run: | | |
# if [ -f monosize-report.md ]; then | |
# report=$(cat monosize-report.md) | |
# echo "report<<EOF" >> $GITHUB_ENV | |
# echo "$report" >> $GITHUB_ENV | |
# echo "EOF" >> $GITHUB_ENV | |
# else | |
# echo "No report found" | |
# fi | |
# - name: Post results to PR (PR only) | |
# if: github.event_name == 'pull_request' | |
# uses: actions/github-script@v7 | |
# with: | |
# github-token: ${{ secrets.GITHUB_TOKEN }} # Use a GitHub token (this is automatically provided) | |
# script: | | |
# const run = require('./.github/bundle-size-comment'); | |
# await run({github,context,core}); | |
# - name: Post results to PR (PR only) | |
# if: github.event_name == 'pull_request' | |
# uses: marocchino/sticky-pull-request-comment@v2 | |
# with: | |
# path: monosize-report.md | |
- name: Build all packages & create reports (non-PR) | |
if: github.event_name != 'pull_request' | |
run: yarn nx run-many -t bundle-size --nxBail | |
- name: Upload a report (base only) | |
continue-on-error: true | |
if: github.event_name != 'pull_request' | |
uses: azure/cli@v2 | |
with: | |
azcliversion: latest | |
inlineScript: | | |
yarn monosize upload-report --branch=${{ github.ref }} --commit-sha ${{ github.sha }} | |
env: | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
AZURE_SERVICE_CONNECTION_ID: ${{ secrets.AZURE_SERVICE_CONNECTION_ID }} | |
BUNDLESIZE_ACCOUNT_NAME: ${{ secrets.BUNDLESIZE_ACCOUNT_NAME }} | |
SYSTEM_ACCESSTOKEN: ${{ secrets.GITHUB_TOKEN }} |