name: CI (push) on: push: branches: - main - '[0-9]+.[0-9]+.x' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true permissions: {} defaults: run: shell: bash jobs: lint: runs-on: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true - name: Install node modules run: yarn install --frozen-lockfile - name: Check code lint run: yarn -s tslint - name: Check for circular dependencies run: yarn -s ts-circular-deps:check - name: Validate pull approve configuration run: yarn -s ng-dev pullapprove verify - name: Validate angular robot configuration run: yarn -s ng-dev ngbot verify - name: Confirm code builds with typescript as expected run: yarn -s check-tooling-setup devtools: runs-on: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile - name: Run unit tests run: yarn devtools:test - name: Test build run: yarn devtools:build:chrome test: runs-on: ubuntu-latest-4core steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel Remote Caching uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile --network-timeout 100000 - name: Run CI tests for framework run: yarn test:ci adev: runs-on: labels: ubuntu-latest-4core steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile - name: Build adev in fast mode to ensure it continues to work run: yarn bazel build //adev:build --config=release - name: Run tests run: yarn bazel test //adev/... publish-snapshots: runs-on: labels: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile - run: echo "https://${{secrets.SNAPSHOT_BUILDS_GITHUB_TOKEN}}:@github.com" > ${HOME}/.git_credentials - run: yarn build - run: ./scripts/ci/publish-build-artifacts.sh zone-js: runs-on: labels: ubuntu-latest-4core steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true node-module-directories: | ./node_modules ./packages/zone.js/node_modules ./packages/zone.js/test/typings/node_modules - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile - run: | yarn bazel build \ //packages/zone.js/bundles:zone.umd.js \ //packages/zone.js:npm_package \ //packages/zone.js/test/closure:closure_js \ - run: | rm -Rf packages/zone.js/build rm -Rf packages/zone.js/test/extra/*.umd.js mkdir -p packages/zone.js/build/ mkdir -p packages/zone.js/build/test/ cp dist/bin/packages/zone.js/bundles/zone.umd.js packages/zone.js/build/zone.umd.js cp dist/bin/packages/zone.js/npm_package/bundles/zone-mix.umd.js ./packages/zone.js/test/extra/ cp dist/bin/packages/zone.js/npm_package/bundles/zone-patch-electron.umd.js ./packages/zone.js/test/extra/ cp dist/bin/packages/zone.js/test/closure/zone.closure.mjs ./packages/zone.js/build/test/zone.closure.mjs # Install - run: yarn --cwd packages/zone.js install --frozen-lockfile --non-interactive # Run zone.js tools tests - run: yarn --cwd packages/zone.js promisefinallytest - run: yarn --cwd packages/zone.js jest:test - run: yarn --cwd packages/zone.js jest:nodetest - run: yarn --cwd packages/zone.js electrontest - run: yarn --cwd packages/zone.js/test/typings install --frozen-lockfile --non-interactive - run: yarn --cwd packages/zone.js/test/typings test saucelabs: runs-on: ubuntu-latest-4core env: SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }} steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 with: cache-node-modules: true - name: Install node modules run: yarn install --frozen-lockfile - uses: ./.github/actions/saucelabs-legacy adev-deploy: needs: [adev] if: needs.adev.result == 'success' runs-on: ubuntu-latest steps: - name: Initialize environment uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel uses: angular/dev-infra/github-actions/bazel/setup@8360e1562157bf2bd918701be6f43323c6445c76 - name: Setup Bazel RBE uses: angular/dev-infra/github-actions/bazel/configure-remote@8360e1562157bf2bd918701be6f43323c6445c76 - name: Install node modules run: yarn install --frozen-lockfile - name: Build adev to ensure it continues to work run: yarn bazel build //adev:build --full_build_adev --config=release - name: Deploy to firebase uses: ./.github/actions/deploy-docs-site with: serviceKey: ${{ secrets.ANGULAR_DEV_SITE_DEPLOY }} githubReleaseTrainReadToken: ${{ secrets.DOCS_DEPLOY_GITHUB_RELEASE_TRAIN_TOKEN }} configPath: 'adev/firebase.json' distDir: 'dist/bin/adev/build/browser'