mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
42 lines
1.9 KiB
YAML
42 lines
1.9 KiB
YAML
# This workflow builds the AIO previews for pull requests when a certain label is applied.
|
|
# The actual deployment happens as part of a dedicated second workflow to avoid security
|
|
# issues where the building would otherwise occur in an authorized context where secrets
|
|
# could be leaked. More details can be found here:
|
|
|
|
# https://securitylab.github.com/research/github-actions-preventing-pwn-requests/.
|
|
|
|
name: Build AIO app for preview deployment
|
|
|
|
on:
|
|
pull_request:
|
|
types: [synchronize, labeled]
|
|
|
|
permissions: read-all
|
|
|
|
jobs:
|
|
aio-build:
|
|
runs-on: ubuntu-latest
|
|
# We only want to build and deploy the AIO app if the `aio: preview` label has been
|
|
# added, or if the label is already applied and new changes have been made in the PR.
|
|
if: |
|
|
(github.event.action == 'labeled' && github.event.label.name == 'aio: preview') ||
|
|
(github.event.action == 'synchronize' && contains(github.event.pull_request.labels.*.name, 'aio: preview'))
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- uses: ./.github/actions/yarn-install
|
|
|
|
- uses: angular/dev-infra/github-actions/bazel/configure-remote@c83e99a12397014162531ca125c94549db55dd84
|
|
with:
|
|
bazelrc: ./.bazelrc.user
|
|
|
|
# Build the web package. Note: We run Bazel from a low-resource Github action container,
|
|
# so we manually need to instruct Bazel to run more actions concurrently as by default
|
|
# the number of concurrent actions is determined based on the host resources.
|
|
- run: bazel build //aio:build --jobs=32 --announce_rc --verbose_failures
|
|
|
|
- uses: angular/dev-infra/github-actions/previews/pack-and-upload-artifact@c83e99a12397014162531ca125c94549db55dd84
|
|
with:
|
|
workflow-artifact-name: 'aio'
|
|
pull-number: '${{github.event.pull_request.number}}'
|
|
artifact-build-revision: '${{github.event.pull_request.head.sha}}'
|
|
deploy-directory: './dist/bin/aio/build'
|