Merge pull request #15 from YoutacRandS-VA/snyk-fix-040ea5f2ab4611727β¦ #5
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: CI | |
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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- 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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel Remote Caching | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- 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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- 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:test | |
publish-snapshots: | |
runs-on: | |
labels: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
with: | |
cache-node-modules: true | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- 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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- 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 | |
bazel-saucelabs: | |
runs-on: ubuntu-latest-4core | |
env: | |
JOBS: 2 | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
with: | |
cache-node-modules: true | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel Remote Caching | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Saucelabs Variables | |
uses: angular/dev-infra/github-actions/saucelabs@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Set up Sauce Tunnel Daemon | |
run: yarn bazel run //tools/saucelabs-daemon/background-service -- $JOBS & | |
env: | |
SAUCE_TUNNEL_IDENTIFIER: angular-framework-${{ github.run_number }} | |
- name: Run all saucelabs bazel tests | |
run: | | |
TESTS=$(./node_modules/.bin/bazelisk query --output label '(kind(karma_web_test, ...) intersect attr("tags", "saucelabs", ...)) except attr("tags", "fixme-saucelabs", ...)') | |
yarn bazel test --config=saucelabs --jobs=$JOBS ${TESTS} | |
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@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@03b8a7dffd1205e061f0bee949024ebefc2a6592 | |
- name: Install node modules | |
run: yarn install --frozen-lockfile | |
- name: Build adev to ensure it continues to work | |
run: yarn bazel build //adev:build --prerender_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' |