From 97c7c567424cfae6b9a2b2dd816fc856c01a6bae Mon Sep 17 00:00:00 2001 From: sagudev <16504129+sagudev@users.noreply.github.com> Date: Thu, 27 Apr 2023 12:13:23 +0200 Subject: [PATCH] Add auto wpt option to workflows --- .github/workflows/linux.yml | 37 ++++++++++++++++++++++++++++++++++--- .github/workflows/main.yml | 1 + 2 files changed, 35 insertions(+), 3 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 6fd5da175a064..df06f0cf208b3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -29,7 +29,7 @@ on: default: "test" required: false type: choice - options: ["test", "sync"] + options: ["test", "sync", "auto"] unit-tests: required: false default: false @@ -55,6 +55,12 @@ jobs: build-linux: name: Build runs-on: ubuntu-20.04 + permissions: + pull-requests: read + # Set job outputs to values from filter step + outputs: + layout2020: ${{ steps.filter.outputs.layout2020 }} + layout2013: ${{ steps.filter.outputs.layout2013 }} steps: - uses: actions/checkout@v3 with: @@ -100,9 +106,29 @@ jobs: with: name: ${{ env.LAYOUT }}-release-binary path: target.tar.gz + # Filters that automagically detect if WPT test for specific layout needs to be run + - uses: dorny/paths-filter@v2 + if: ${{ inputs.wpt == 'auto' }} + id: filter + with: + filters: | + layout2020: + - 'components/layout_traits/**' + - 'components/layout_2020/**' + - 'components/layout_thread_2020/**' + - '**-layout-2020/**' + layout2013: + - 'components/layout_traits/**' + - 'components/layout/**' + - 'components/layout_thread/**' + - 'tests/wpt/**' linux-wpt: - if: ${{ github.ref_name == 'try-wpt' || github.ref_name == 'try-wpt-2020' || inputs.wpt }} + if: | + github.ref_name == 'try-wpt' || github.ref_name == 'try-wpt-2020' || + inputs.wpt == 'test' || inputs.wpt == 'sync' || + (needs.build-linux.outputs.layout2020 == 'true' && contains(inputs.layout, '2020')) || + (needs.build-linux.outputs.layout2013 == 'true' && !contains(inputs.layout, '2020')) name: Linux WPT Tests runs-on: ubuntu-20.04 needs: ["build-linux"] @@ -183,8 +209,13 @@ jobs: report-test-results: name: Reporting test results runs-on: ubuntu-latest - if: ${{ always() && !cancelled() && success('build-linux') && (github.ref_name == 'try-wpt' || github.ref_name == 'try-wpt-2020' || inputs.wpt == 'test') }} + if: | + always() && !cancelled() && success('build-linux') && + (github.ref_name == 'try-wpt' || github.ref_name == 'try-wpt-2020' || inputs.wpt == 'test' || + (needs.build-linux.outputs.layout2020 == 'true' && contains(inputs.layout, '2020')) || + (needs.build-linux.outputs.layout2013 == 'true' && !contains(inputs.layout, '2020'))) needs: + - "build-linux" - "linux-wpt" steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 786a9943cf63d..fd300bb8b9e33 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,6 +59,7 @@ jobs: uses: ./.github/workflows/linux.yml with: layout: '2020' + wpt: 'auto' build_result: name: homu build finished