mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Also fix report_aggregated_expected_results.py which was reporting an error when there were no failing tests. This is more commonly an issue with Layout 2020 because if runs fewer tests and was causing builds to show up as failing even when they were not.
82 lines
2 KiB
YAML
82 lines
2 KiB
YAML
name: Merge queue and try
|
|
|
|
on:
|
|
push:
|
|
branches: ["auto", "try"]
|
|
|
|
# Allows you to run this workflow manually from the Actions tab
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
decision:
|
|
name: Decision job
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- name: Previous successful build check
|
|
uses: actions/github-script@v6
|
|
with:
|
|
script: |
|
|
if ((await github.rest.actions.listWorkflowRuns({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
workflow_id: "main.yml",
|
|
head_sha: context.sha,
|
|
status: "success",
|
|
})).data.workflow_runs.length > 0)
|
|
await github.rest.actions.cancelWorkflowRun({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
run_id: context.runId,
|
|
});
|
|
|
|
build-win:
|
|
name: Windows
|
|
needs: ["decision"]
|
|
uses: ./.github/workflows/windows.yml
|
|
with:
|
|
layout: '2013'
|
|
unit-tests: true
|
|
|
|
build-mac:
|
|
name: Mac
|
|
needs: ["decision"]
|
|
uses: ./.github/workflows/mac.yml
|
|
with:
|
|
layout: '2013'
|
|
unit-tests: true
|
|
|
|
build-linux:
|
|
name: Linux
|
|
needs: ["decision"]
|
|
uses: ./.github/workflows/linux.yml
|
|
with:
|
|
layout: '2013'
|
|
wpt: 'test'
|
|
|
|
build-linux-layout-2020:
|
|
name: Linux (layout-2020)
|
|
needs: ["decision"]
|
|
uses: ./.github/workflows/linux.yml
|
|
with:
|
|
layout: '2020'
|
|
wpt: 'test'
|
|
|
|
build_result:
|
|
name: homu build finished
|
|
runs-on: ubuntu-latest
|
|
if: always()
|
|
# needs all build to detect cancellation
|
|
needs:
|
|
- "decision"
|
|
- "build-win"
|
|
- "build-mac"
|
|
- "build-linux"
|
|
- "build-linux-layout-2020"
|
|
|
|
steps:
|
|
- name: Mark the job as successful
|
|
run: exit 0
|
|
if: ${{ !contains(join(needs.*.result, ','), 'failure') && !contains(join(needs.*.result, ','), 'cancelled') }}
|
|
- name: Mark the job as unsuccessful
|
|
run: exit 1
|
|
if: contains(join(needs.*.result, ','), 'failure') || contains(join(needs.*.result, ','), 'cancelled')
|