Skip to content

feat(atomic-transform-loader): implement build-transform webpack loader #2101

feat(atomic-transform-loader): implement build-transform webpack loader

feat(atomic-transform-loader): implement build-transform webpack loader #2101

Workflow file for this run

name: Pull request validation
on: pull_request
env:
NX_PARALLEL: 4 # ubuntu-latest = 4-core CPU / 16 GB of RAM | macos-14-xlarge (arm) = 6-core CPU / 14 GB of RAM
NX_VERBOSE_LOGGING: true
jobs:
valid-asset-names:
name: Validate Asset Names
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check asset directories are valid for Windows
run: |
ls assets | python3 -c """
import sys
assets_dir = sys.stdin.read().strip().split('\n')
invalid_asset_dirs = []
for dir in assets_dir:
if dir.endswith(' '):
invalid_asset_dirs.append(dir)
if invalid_asset_dirs:
print('Invalid asset directories, remove the trailing space')
print(invalid_asset_dirs)
exit(1)
"""
valid-asset-fills:
name: Validate Asset Fills
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check that all SVGs have the right fill
run: |
error_found=false
for file in $(find ./assets -type f -name "*.svg" -print0 | grep -zv '_color.svg' | xargs -0 grep -L 'fill="#212121"'); do
echo "Error: $file does not have 'fill=\"#212121\"' or has a different fill."
error_found=true
done
if [[ $error_found == true ]]; then
exit 1
fi
build-ios:
name: Build iOS library
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 22.x
- run: npm ci
- name: Run generate script
run: npm run deploy:ios
working-directory: importer
build-android:
name: Build Android library
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 22.x
- run: npm ci
- name: Run generate script
run: npm run deploy:android
working-directory: importer
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: 11
# https://github.com/marketplace/actions/gradle-command
- name: Build Android library
uses: eskatos/gradle-command-action@v1
with:
arguments: assembleRelease
build-root-directory: android
wrapper-directory: android
- name: Generate BUILD.gn file for Android
run: python3 generate_build_gn_android.py
working-directory: importer
# Disabling for now until the pipeline job is fixed
# build-flutter:
# name: Build Flutter library
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v6
# - uses: actions/setup-node@v4
# with:
# node-version: 22.x
# - run: npm ci
# - name: Run generate script
# run: npm run deploy:flutter
# working-directory: importer
# # Build Flutter library
# # The name should be same as the package name on pub.dev
# # Tokens are placeholder strings in order for the action to run on forked repos.
# - name: 'fluentui_system_icons'
# uses: k-paxian/dart-package-publisher@master
# with:
# relativePath: 'flutter'
# skipTests: true
# dryRunOnly: true
# accessToken: "placeholder"
# refreshToken: "placeholder"
build-npm:
if: ${{ github.repository_owner == 'microsoft' }}
name: Build npm packages
runs-on: ubuntu-latest
permissions:
contents: 'read'
actions: 'read'
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
filter: tree:0
- uses: actions/setup-node@v6
with:
node-version: 22.x
- run: npm ci
- uses: nrwl/nx-set-shas@afb73a62d26e41464e9254689e1fd6122ee683c1 # v5.0.1
- name: Format Check
run: npx nx format:check
- name: Lint
run: npx nx affected -t lint
- name: Type Check Infra
run: npx nx affected -t type-check:infra
- name: Build
run: |
npx nx affected -t build
npx nx affected -t build-verify
- name: Test
run: npx nx affected -t test
- name: Bundle-Size
run: |
npx nx affected -t bundle-size
npx monosize compare-reports --branch=${{ github.event.pull_request.base.ref }} --output markdown --quiet > bundle-size-report.md
- name: Write job summary
if: always()
run: |
# Bundle-size report
if [ -f bundle-size-report.md ]; then
echo "## 📦 Bundle Size" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
cat bundle-size-report.md >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
fi
# Docsite artifact instructions
if [ -d packages/docsite/storybook-static ]; then
echo "## 📖 Docsite Preview" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "The docsite has been built and uploaded as an artifact (\`docsite-storybook-build\`)." >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "To preview locally after downloading and extracting:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo '```sh' >> $GITHUB_STEP_SUMMARY
echo "npx http-server ./docsite-storybook-build -o" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
fi
- name: Upload icon-app build artifacts
uses: actions/upload-artifact@v7
with:
name: icon-app-build
path: packages/icon-app/dist/
retention-days: 3
- name: Upload docsite build artifacts
uses: actions/upload-artifact@v7
with:
name: docsite-storybook-build
path: packages/docsite/storybook-static/
retention-days: 3