aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/linux.yml22
-rw-r--r--.github/workflows/mac.yml31
-rw-r--r--.github/workflows/main.yml2
-rw-r--r--.github/workflows/nightly.yml134
-rw-r--r--.github/workflows/windows.yml47
5 files changed, 122 insertions, 114 deletions
diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index 8b5cd8504b2..66149b5b86e 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -12,6 +12,10 @@ on:
required: false
default: false
type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
workflow_dispatch:
inputs:
layout:
@@ -27,6 +31,10 @@ on:
required: false
default: false
type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
push:
branches: ["try-linux", "try-wpt"]
@@ -34,6 +42,7 @@ env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
LAYOUT: "${{ contains(inputs.layout, '2020') && 'layout-2020' || 'layout-2013' }}"
+ PACKAGE: "${{ contains(inputs.layout, '2020') && 'linux-layout2020' || 'linux' }}"
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
CCACHE: "sccache"
@@ -41,7 +50,6 @@ env:
jobs:
build-linux:
- if: github.repository == 'servo/servo' || github.event_name == 'push'
name: Build
runs-on: ubuntu-20.04
steps:
@@ -65,6 +73,18 @@ jobs:
run: python3 ./mach test-unit --release --with-${{ env.LAYOUT }}
- name: Lockfile check
run: ./etc/ci/lockfile_changed.sh
+ - name: Package
+ run: python3 ./mach package --release
+ - name: Upload Package
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE }}
+ path: target/release/servo-tech-demo.tar.gz
+ - name: Upload
+ if: ${{ inputs.upload }}
+ run: python3 ./mach upload-nightly ${{ env.PACKAGE }} --secret-from-environment
+ env:
+ S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
- name: Package binary
run: tar -czf target.tar.gz target/release/servo resources
- name: Archive binary
diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml
index 0609b35d2dc..57c4a7700d3 100644
--- a/.github/workflows/mac.yml
+++ b/.github/workflows/mac.yml
@@ -6,12 +6,28 @@ on:
layout:
required: true
type: string
+ unit-tests:
+ required: false
+ default: false
+ type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
workflow_dispatch:
inputs:
layout:
required: true
type: choice
options: ["2013", "2020"]
+ unit-tests:
+ required: false
+ default: false
+ type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
push:
branches: ["try-mac"]
@@ -19,6 +35,7 @@ env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
LAYOUT: "${{ contains(inputs.layout, '2020') && 'layout-2020' || 'layout-2013' }}"
+ PACKAGE: "${{ contains(inputs.layout, '2020') && 'mac-layout2020' || 'mac' }}"
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
CCACHE: "sccache"
@@ -61,11 +78,23 @@ jobs:
- name: Smoketest
run: python3 ./mach smoketest
- name: Unit tests
+ if: ${{ inputs.unit-tests }}
run: python3 ./mach test-unit --release --with-${{ env.LAYOUT }}
- - name: Test package
+ - name: Package
run: python3 ./mach package --release
- name: Package smoketest
run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg
+ - name: Upload package
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE }}
+ path: target/release/servo-tech-demo.dmg
+ - name: Upload
+ if: ${{ inputs.upload }}
+ run: python3 ./mach upload-nightly mac --secret-from-environment
+ env:
+ S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
+ GITHUB_HOMEBREW_TOKEN: ${{ secrets.HOMEBREW_TOKEN }}
- name: Package binary
run: gtar -czf target.tar.gz target/release/servo target/release/*.dylib resources
- name: Archive binary
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 90ebb4a0352..786a9943cf6 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -35,6 +35,7 @@ jobs:
uses: ./.github/workflows/windows.yml
with:
layout: '2013'
+ unit-tests: true
build-mac:
name: Mac
@@ -42,6 +43,7 @@ jobs:
uses: ./.github/workflows/mac.yml
with:
layout: '2013'
+ unit-tests: true
build-linux:
name: Linux
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index b06505e5925..670aa14b5a7 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -11,122 +11,38 @@ env:
SHELL: /bin/bash
jobs:
- upload-linux:
+ upload-win:
# This job is only useful when run on upstream servo.
if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
- name: Upload nightly (Linux)
- runs-on: ubuntu-20.04
- strategy:
- matrix:
- layout-engine: ['2013', '2020']
- include:
- - layout-engine: '2013'
- build-flag: '--with-layout-2013'
- package: 'linux'
- continue-on-error: false
- - layout-engine: '2020'
- build-flag: '--with-layout-2020'
- package: 'linux-layout2020'
- continue-on-error: true
- continue-on-error: ${{ matrix.continue-on-error }}
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 2
- - name: Bootstrap
- run: |
- python3 -m pip install --upgrade pip virtualenv
- sudo apt update
- python3 ./mach bootstrap
- - name: Release build
- run: python3 ./mach build --release ${{ matrix.build-flag }}
- - name: Package
- run: python3 ./mach package --release
- - name: Upload
- run: python3 ./mach upload-nightly ${{ matrix.package }} --secret-from-environment
- env:
- S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
+ name: Upload nightly (Windows)
+ uses: ./.github/workflows/windows.yml
+ with:
+ layout: '2013'
+ upload: true
upload-mac:
# This job is only useful when run on upstream servo.
if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
name: Upload nightly (macOS)
- runs-on: macos-12
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 2
- # TODO: Remove this step when the compatibility issue between mozjs and
- # Homebrew's Python 3.10 formula (servo/rust-mozjs#559) is fixed
- - name: Select Python 3.9
- run: |
- brew install python@3.9
- cd $(dirname $(which python3.9))
- rm -f python3 pip3
- ln -s python3.9 python3
- ln -s pip3.9 pip3
- - name: Bootstrap
- run: |
- python3 -m pip install --upgrade pip virtualenv
- brew bundle install --verbose --no-upgrade --file=etc/taskcluster/macos/Brewfile
- brew bundle install --verbose --no-upgrade --file=etc/taskcluster/macos/Brewfile-build
- rm -rf /usr/local/etc/openssl
- rm -rf /usr/local/etc/openssl@1.1
- brew install openssl@1.1 gnu-tar
- - name: Release build
- run: |
- export OPENSSL_INCLUDE_DIR="$(brew --prefix openssl)/include"
- export OPENSSL_LIB_DIR="$(brew --prefix openssl)/lib"
- export PKG_CONFIG_PATH="$(brew --prefix libffi)/lib/pkgconfig/"
- export PKG_CONFIG_PATH="$(brew --prefix zlib)/lib/pkgconfig/:$PKG_CONFIG_PATH"
- python3 ./mach build --release
- - name: Package
- run: python3 ./mach package --release
- - name: Smoketest
- run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg
- - name: Upload
- run: python3 ./mach upload-nightly mac --secret-from-environment
- env:
- S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
- GITHUB_HOMEBREW_TOKEN: ${{ secrets.HOMEBREW_TOKEN }}
+ uses: ./.github/workflows/mac.yml
+ with:
+ layout: '2013'
+ upload: true
- upload-win:
+ upload-linux:
# This job is only useful when run on upstream servo.
if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
- name: Upload nightly (Windows)
- runs-on: windows-2019
- steps:
- - uses: actions/checkout@v3
- with:
- fetch-depth: 2
- - name: Copy to C drive
- run: cp D:\a C:\ -Recurse
- - uses: suisei-cn/actions-download-file@v1
- id: wix311-binaries
- name: Download wix binaries
- with:
- url: "https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311-binaries.zip"
- target: "C:\\wix311-binaries.zip"
- - uses: DuckSoft/extract-7z-action@v1.0
- name: Extract wix binaries
- with:
- pathSource: "C:\\wix311-binaries.zip"
- pathTarget: "C:\\wix"
- - name: Add binaries to path
- run: echo "C:\\wix" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- - name: Bootstrap
- working-directory: "C:\\a\\servo\\servo"
- run: |
- python -m pip install --upgrade pip virtualenv
- python mach fetch
- - name: Release build
- working-directory: "C:\\a\\servo\\servo"
- run: python mach build --release --media-stack=dummy
- - name: Package
- working-directory: "C:\\a\\servo\\servo"
- run: python mach package --release
- - name: Upload
- working-directory: "C:\\a\\servo\\servo"
- run: python mach upload-nightly windows-msvc --secret-from-environment
- env:
- S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
+ name: Upload nightly (Linux)
+ uses: ./.github/workflows/linux.yml
+ with:
+ layout: '2013'
+ upload: true
+
+ upload-linux-2020:
+ # This job is only useful when run on upstream servo.
+ if: github.repository == 'servo/servo' || github.event_name == 'workflow_dispatch'
+ name: Upload nightly (Linux layout2020)
+ uses: ./.github/workflows/linux.yml
+ with:
+ layout: '2020'
+ upload: true
diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml
index a7ef7a4ea86..e2ba38d0e23 100644
--- a/.github/workflows/windows.yml
+++ b/.github/workflows/windows.yml
@@ -6,12 +6,28 @@ on:
layout:
required: true
type: string
+ unit-tests:
+ required: false
+ default: false
+ type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
workflow_dispatch:
inputs:
layout:
required: true
type: choice
options: ["2013", "2020"]
+ unit-tests:
+ required: false
+ default: false
+ type: boolean
+ upload:
+ required: false
+ default: false
+ type: boolean
push:
branches: ["try-windows"]
@@ -19,6 +35,7 @@ env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
LAYOUT: "${{ contains(inputs.layout, '2020') && 'layout-2020' || 'layout-2013' }}"
+ PACKAGE: "${{ contains(inputs.layout, '2020') && 'windows-msvc-layout2020' || 'windows-msvc' }}"
jobs:
build-win:
@@ -30,6 +47,12 @@ jobs:
fetch-depth: 2
- name: Copy to C drive
run: cp D:\a C:\ -Recurse
+ - 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: Bootstrap
working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}"
run: |
@@ -38,12 +61,30 @@ jobs:
- name: Release build
working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}"
run: python mach build --release --media-stack=dummy --with-${{ env.LAYOUT }}
- - name: Unit tests
- working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}"
- run: python mach test-unit --release --with-${{ env.LAYOUT }}
- name: Smoketest
working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}"
run: python mach smoketest --angle
+ - name: Unit tests
+ working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}"
+ if: ${{ inputs.unit-tests }}
+ run: python mach test-unit --release --with-${{ env.LAYOUT }}
+ - name: Package
+ working-directory: "C:\\a\\servo\\servo"
+ run: python mach package --release
+ - name: Upload Package
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ env.PACKAGE }}
+ # 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
+ if: ${{ inputs.upload }}
+ run: python mach upload-nightly windows-msvc --secret-from-environment
+ env:
+ S3_UPLOAD_CREDENTIALS: ${{ secrets.S3_UPLOAD_CREDENTIALS }}
build_result:
name: homu build finished