mirror of
https://github.com/servo/servo
synced 2026-04-26 17:45:19 +02:00
* ci: Switch to version 4 of GitHub artifact actions This switches to version 4 of the GitHub artifact actions, which requires producing a single artifact per job and adding merge steps. In addition, the names of artifacts are standardized: - Build: <profile>-binary-<platform> - Full WPT results (only on failure): wpt-full-logs-<platform>-<layout> - Filtered WPT results (only on failure): wpt-filtered-logs-<platform>-<layout> * Delete merged build timings and combine with Result job * Always archives logs even after test failures * Correct the name of the log files for WPT import
72 lines
1.8 KiB
YAML
72 lines
1.8 KiB
YAML
name: Main
|
|
|
|
on:
|
|
push:
|
|
# Run the entire pipeline for 'main' even though the merge queue already runs checks
|
|
# for every change. This just offers an extra layer of testing and covers the case of
|
|
# random force pushes.
|
|
branches: ["main"]
|
|
pull_request:
|
|
types: ['opened', 'synchronize']
|
|
branches: ["**"]
|
|
merge_group:
|
|
types: [checks_requested]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build-win:
|
|
name: Windows
|
|
if: ${{ github.event_name != 'pull_request' }}
|
|
uses: ./.github/workflows/windows.yml
|
|
with:
|
|
unit-tests: true
|
|
secrets: inherit
|
|
|
|
build-mac:
|
|
name: Mac
|
|
if: ${{ github.event_name != 'pull_request' }}
|
|
uses: ./.github/workflows/mac.yml
|
|
with:
|
|
unit-tests: true
|
|
secrets: inherit
|
|
|
|
build-linux:
|
|
name: Linux
|
|
uses: ./.github/workflows/linux.yml
|
|
with:
|
|
unit-tests: true
|
|
wpt-layout: ${{ github.event_name == 'pull_request' && 'none' || 'all' }}
|
|
secrets: inherit
|
|
|
|
build-android:
|
|
name: Android
|
|
if: ${{ github.event_name != 'pull_request' }}
|
|
uses: ./.github/workflows/android.yml
|
|
with:
|
|
profile: "release"
|
|
secrets: inherit
|
|
|
|
build-result:
|
|
name: Result
|
|
runs-on: ubuntu-latest
|
|
if: always()
|
|
# needs all build to detect cancellation
|
|
needs:
|
|
- "build-win"
|
|
- "build-mac"
|
|
- "build-linux"
|
|
- "build-android"
|
|
steps:
|
|
- name: Merge build timings
|
|
uses: actions/upload-artifact/merge@v4
|
|
with:
|
|
name: cargo-timings
|
|
pattern: cargo-timings-*
|
|
delete-merged: true
|
|
- name: Success
|
|
if: ${{ !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
|
|
run: exit 0
|
|
- name: Failure
|
|
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
|
|
run: exit 1
|