diff options
-rw-r--r-- | .github/workflows/linux.yml | 22 | ||||
-rw-r--r-- | .github/workflows/mac.yml | 31 | ||||
-rw-r--r-- | .github/workflows/main.yml | 2 | ||||
-rw-r--r-- | .github/workflows/nightly.yml | 134 | ||||
-rw-r--r-- | .github/workflows/windows.yml | 47 |
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 |