diff --git a/.github/workflows/triggered.yml b/.github/workflows/triggered.yml new file mode 100644 index 000000000..5dd19b29b --- /dev/null +++ b/.github/workflows/triggered.yml @@ -0,0 +1,66 @@ +name: Triggered + +on: + workflow_dispatch: + inputs: + pr_number: + description: 'PR Number' + required: true + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + ASVRunner: + name: test with specific asv_runner + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: ["ubuntu-latest"] + python-version: ["3.7", "3.10", "pypy-3.8", "pypy-3.9"] + r-version: ['release'] + timeout-minutes: 30 + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: 0 + + # We need Python 3.7 to always be installed, so tests with + # multiple environments can run. + - name: Set up Python 3.7 + uses: actions/setup-python@v4 + with: + python-version: 3.7 + + - name: Set up Python version ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + cache: pip + cache-dependency-path: pyproject.toml + + - name: Setup a browser for more tests + uses: browser-actions/setup-chrome@latest + + - name: Set up R version ${{ matrix.r-version }} + uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.r-version }} + + - name: Install dependencies + run: python -m pip install ".[test,hg]" + + - name: Get asv_runner to be tested + uses: actions/checkout@v3 + with: + repository: airspeed-velocity/asv_runner + ref: refs/pull/${{ github.event.inputs.pr_number }}/head + path: latest_asv_runner + + - name: Install asv + run: pip install . + + - name: Run tests with the current asv_runner + run: ASV_RUNNER="$(pwd)/latest_asv_runner" python -m pytest -v --timeout=300 --webdriver=ChromeHeadless --durations=100 test