mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
There are currently two ways to run try. One is to push to the `try` or `try-*` branches and the other is to trigger a workflow via GitHub comment. This change combines these methods into one workflow. In addition, WPT results are reported together rather than separately and filtered results for all WPT tests are bundled together in the same artifact.
116 lines
3.8 KiB
YAML
116 lines
3.8 KiB
YAML
name: Windows
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
unit-tests:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
upload:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
github-release-id:
|
|
required: false
|
|
type: string
|
|
workflow_dispatch:
|
|
inputs:
|
|
unit-tests:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
upload:
|
|
required: false
|
|
default: false
|
|
type: boolean
|
|
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
SHELL: /bin/bash
|
|
CCACHE: "ccache"
|
|
CARGO_TARGET_DIR: C:\\a\\servo\\servo\\target
|
|
|
|
jobs:
|
|
build:
|
|
name: Build
|
|
runs-on: windows-2019
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
if: github.event_name != 'issue_comment'
|
|
with:
|
|
fetch-depth: 2
|
|
# This is necessary to checkout the pull request if this run was triggered
|
|
# via an `issue_comment` action on a pull request.
|
|
- uses: actions/checkout@v3
|
|
if: github.event_name == 'issue_comment'
|
|
with:
|
|
ref: refs/pull/${{ github.event.issue.number }}/head
|
|
fetch-depth: 2
|
|
- name: wix311-binaries
|
|
shell: powershell
|
|
run: |
|
|
Start-BitsTransfer -Source https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311-binaries.zip -Destination C:\\wix311-binaries.zip
|
|
Expand-Archive C:\\wix311-binaries.zip -DestinationPath C:\\wix
|
|
echo "C:\\wix" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
|
- name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1.2
|
|
- name: Bootstrap
|
|
run: |
|
|
python -m pip install --upgrade pip virtualenv
|
|
python mach fetch
|
|
python mach bootstrap-gstreamer
|
|
- name: Release build
|
|
run: python mach build --release
|
|
- name: Copy resources
|
|
run: cp D:\a\servo\servo\resources C:\a\servo\servo -Recurse
|
|
- name: Smoketest
|
|
run: python mach smoketest --angle --release
|
|
- name: Unit tests
|
|
if: ${{ inputs.unit-tests }}
|
|
run: python mach test-unit --release
|
|
- name: Rename build timing
|
|
run: cp C:\a\servo\servo\target\cargo-timings C:\a\servo\servo\target\cargo-timings-windows -Recurse
|
|
- name: Archive build timing
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: cargo-timings
|
|
# Using a wildcard here ensures that the archive includes the path.
|
|
path: C:\\a\\servo\\servo\\target\\cargo-timings-*
|
|
- name: Package
|
|
run: python mach package --release
|
|
- name: Upload package
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: win
|
|
# These files are available
|
|
# MSI Installer: C:\a\servo\servo\target\release\msi\Installer.msi
|
|
# Bundle: C:\a\servo\servo\target\release\msi\Servo.exe
|
|
# Zip: C:\a\servo\servo\target\release\msi\Servo.zip
|
|
path: C:\\a\\servo\\servo\\target/release/msi/Servo.exe
|
|
- name: Upload nightly
|
|
if: ${{ inputs.upload }}
|
|
run: |
|
|
python mach upload-nightly windows-msvc --secret-from-environment `
|
|
--github-release-id ${{ inputs.github-release-id }}
|
|
env:
|
|
S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
|
|
NIGHTLY_REPO_TOKEN: ${{ secrets.NIGHTLY_REPO_TOKEN }}
|
|
NIGHTLY_REPO: ${{ github.repository_owner }}/servo-nightly-builds
|
|
|
|
result:
|
|
name: Result
|
|
runs-on: ubuntu-latest
|
|
if: always()
|
|
# needs all build to detect cancellation
|
|
needs:
|
|
- "build"
|
|
|
|
steps:
|
|
- name: Mark the job as successful
|
|
run: exit 0
|
|
if: ${{ !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
|
|
- name: Mark the job as unsuccessful
|
|
run: exit 1
|
|
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
|
|
|