From 8c18196ec978793867077d00ac7e4c25aed21704 Mon Sep 17 00:00:00 2001 From: Delan Azabani Date: Wed, 4 Jan 2023 20:56:33 +0800 Subject: [PATCH] CI: revert temporary changes for quick testing --- .github/workflows/main.yml | 199 +++++++++++++++++++++++++++++++++---- 1 file changed, 179 insertions(+), 20 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b78c6d47697..96fe61d6dc9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,10 +13,94 @@ env: SHELL: /bin/bash jobs: + build-win: + name: Build (Windows) + runs-on: windows-2019 + steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-windows', github.ref) }} + run: exit 0 + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Copy to C drive + run: cp D:\a C:\ -Recurse + - name: Bootstrap + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: | + python -m pip install --upgrade pip virtualenv + python mach fetch + - name: Release build + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: python mach build --release --media-stack=dummy + - name: Unit tests + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: python mach test-unit --release + - name: Smoketest + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: python mach smoketest --angle + + build-uwp-x64: + name: Build (Windows UWP x64) + runs-on: windows-2019 + steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-windows', github.ref) }} + run: exit 0 + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Copy to C drive + run: cp D:\a C:\ -Recurse + - name: Bootstrap + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: | + python -m pip install --upgrade pip virtualenv + python mach fetch + - name: Release build + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: python mach build --release --target=x86_64-uwp-windows-msvc + #- name: Package + # working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + # run: python mach package --release --target=x86_64-uwp-windows-msvc --uwp=x64 + # env: + # CODESIGN_CERT: ${{ secrets.WINDOWS_CODESIGN_CERT }} + - name: Tidy + run: python mach test-tidy --force-cpp --no-wpt + + build-uwp-arm64: + name: Build (Windows UWP arm64) + runs-on: windows-2019 + steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-windows', github.ref) }} + run: exit 0 + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + - name: Copy to C drive + run: cp D:\a C:\ -Recurse + - name: Bootstrap + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: | + python -m pip install --upgrade pip virtualenv + python mach fetch + - name: Release build + working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + run: python mach build --release --target=aarch64-uwp-windows-msvc + #- name: Package + # working-directory: "C:\\a\\${{ github.event.repository.name }}\\${{ github.event.repository.name }}" + # run: python mach package --release --target=aarch64-uwp-windows-msvc --uwp=arm64 + # env: + # CODESIGN_CERT: ${{ secrets.WINDOWS_CODESIGN_CERT }} + build-mac: name: Build (macOS) runs-on: macos-12 steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-mac', github.ref) }} + run: exit 0 - uses: actions/checkout@v3 with: fetch-depth: 2 @@ -37,18 +121,6 @@ jobs: rm -rf /usr/local/etc/openssl rm -rf /usr/local/etc/openssl@1.1 brew install openssl@1.1 gnu-tar - - name: Cache mach fetch - uses: actions/cache@v3 - with: - path: | - ~/.rustup - ~/.cargo - key: fetch-${{ runner.os }} - - name: Cache target - uses: actions/cache@v3 - with: - path: target - key: target-${{ runner.os }} - name: Release build run: | export OPENSSL_INCLUDE_DIR="$(brew --prefix openssl)/include" @@ -56,14 +128,14 @@ jobs: 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: Smoketest - # run: python3 ./mach smoketest - # - name: Unit tests - # run: python3 ./mach test-unit --release - # - name: Test package - # run: python3 ./mach package --release - # - name: Package smoketest - # run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg + - name: Smoketest + run: python3 ./mach smoketest + - name: Unit tests + run: python3 ./mach test-unit --release + - name: Test package + run: python3 ./mach package --release + - name: Package smoketest + run: ./etc/ci/macos_package_smoketest.sh target/release/servo-tech-demo.dmg - name: Package binary run: gtar -czf target.tar.gz target/release/servo target/release/*.dylib resources - name: Archive binary @@ -130,11 +202,98 @@ jobs: filtered-wpt-summary.${{ matrix.chunk_id }}.log intermittents.${{ matrix.chunk_id }}.log + build-linux: + name: Build (Linux) + runs-on: ubuntu-20.04 + steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-linux refs/heads/try-wpt', github.ref) }} + run: exit 0 + - 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 + - name: Lockfile check + run: ./etc/ci/lockfile_changed.sh + - name: Forbidden panic check + run: ./etc/ci/check_no_panic.sh + - name: Package binary + run: tar -czf target.tar.gz target/release/servo resources + - name: Archive binary + uses: actions/upload-artifact@v3 + with: + name: release-binary + path: target.tar.gz + + linux-wpt: + name: Linux WPT Tests + runs-on: ubuntu-20.04 + needs: ["build-linux"] + env: + max_chunk_id: 20 + strategy: + fail-fast: false + matrix: + chunk_id: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] + steps: + - name: Branch check + if: ${{ !contains('refs/heads/auto refs/heads/try refs/heads/try-wpt', github.ref) }} + run: exit 0 + - uses: actions/checkout@v3 + with: + fetch-depth: 2 + - uses: actions/download-artifact@v3 + with: + name: release-binary + path: release-binary + - name: unPackage binary + run: tar -xzf release-binary/target.tar.gz + - name: Prep test environment + run: | + python3 -m pip install --upgrade pip virtualenv + sudo apt update + sudo apt install -qy --no-install-recommends libgl1 libssl1.1 libdbus-1-3 libxcb-xfixes0-dev libxcb-shape0-dev libunwind8 libegl1-mesa + wget http://mirrors.kernel.org/ubuntu/pool/main/libf/libffi/libffi6_3.2.1-8_amd64.deb + sudo apt install ./libffi6_3.2.1-8_amd64.deb + python3 ./mach bootstrap-gstreamer + - name: Run tests + run: | + python3 ./mach test-wpt \ + --release --processes $(nproc) --timeout-multiplier 2 \ + --total-chunks ${{ env.max_chunk_id }} --this-chunk ${{ matrix.chunk_id }} \ + --log-raw test-wpt.${{ matrix.chunk_id }}.log \ + --log-servojson wpt-jsonsummary.${{ matrix.chunk_id }}.log \ + --always-succeed + python3 ./mach filter-intermittents wpt-jsonsummary.${{ matrix.chunk_id }}.log \ + --log-intermittents=intermittents.${{ matrix.chunk_id }}.log \ + --log-filteredsummary=filtered-wpt-summary.${{ matrix.chunk_id }}.log \ + --tracker-api=default --reporter-api=default + - name: Archive logs + uses: actions/upload-artifact@v3 + if: ${{ failure() }} + with: + name: wpt${{ matrix.chunk_id }}-logs-linux + path: | + test-wpt.${{ matrix.chunk_id }}.log + wpt-jsonsummary.${{ matrix.chunk_id }}.log + filtered-wpt-summary.${{ matrix.chunk_id }}.log + intermittents.${{ matrix.chunk_id }}.log + build_result: name: homu build finished runs-on: ubuntu-latest needs: + - "build-win" + - "build-uwp-x64" + - "build-linux" - "build-mac" + - "linux-wpt" - "mac-wpt" steps: