name: Selenium tests on: push: paths-ignore: - 'doc/**' - 'packages/**' pull_request: paths-ignore: - 'doc/**' - 'packages/**' schedule: # Run at midnight UTC every Tuesday - cron: '0 0 * * 2' env: GALAXY_CONFIG_GALAXY_URL_PREFIX: '/galaxypf' GALAXY_TEST_DBURI: 'postgresql://postgres:postgres@localhost:5432/galaxy?client_encoding=utf8' GALAXY_TEST_RAISE_EXCEPTION_ON_HISTORYLESS_HDA: '1' GALAXY_TEST_SELENIUM_RETRIES: 1 GALAXY_TEST_SKIP_FLAKEY_TESTS_ON_ERROR: 1 YARN_INSTALL_OPTS: --frozen-lockfile GALAXY_CONFIG_SQLALCHEMY_WARN_20: '1' concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: setup-selenium: uses: ./.github/workflows/setup_selenium.yaml build-client: uses: ./.github/workflows/build_client.yaml test: name: Test needs: [setup-selenium, build-client] runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.10'] chunk: [0, 1, 2] services: postgres: image: postgres:17 env: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: postgres ports: - 5432:5432 steps: - if: github.event_name == 'schedule' run: | echo "GALAXY_CONFIG_OVERRIDE_METADATA_STRATEGY=extended" >> $GITHUB_ENV echo "GALAXY_CONFIG_OVERRIDE_OUTPUTS_TO_WORKING_DIRECTORY=true" >> $GITHUB_ENV - uses: actions/checkout@v6 with: path: 'galaxy root' persist-credentials: false - uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} - name: Install uv uses: astral-sh/setup-uv@v7 - name: Get full Python version id: full-python-version shell: bash run: echo "version=$(python -c 'import sys; print("-".join(str(v) for v in sys.version_info))')" >> $GITHUB_OUTPUT - name: Cache galaxy venv uses: actions/cache@v5 with: path: 'galaxy root/.venv' key: gxy-venv-${{ runner.os }}-${{ steps.full-python-version.outputs.version }}-${{ hashFiles('galaxy root/requirements.txt') }}-selenium - name: Restore client cache uses: actions/cache@v5 with: fail-on-cache-miss: true key: galaxy-static-${{ needs.build-client.outputs.commit-id }} path: 'galaxy root/static' - name: Run tests run: ./run_tests.sh --coverage -selenium lib/galaxy_test/selenium -- --num-shards=3 --shard-id=${{ matrix.chunk }} working-directory: 'galaxy root' - uses: codecov/codecov-action@v5 with: flags: selenium working-directory: 'galaxy root' - uses: actions/upload-artifact@v7 if: failure() with: name: Selenium test results (${{ matrix.python-version }}, ${{ matrix.chunk }}) path: 'galaxy root/run_selenium_tests.html' - uses: actions/upload-artifact@v7 if: failure() with: name: Selenium debug info (${{ matrix.python-version }}, ${{ matrix.chunk }}) path: 'galaxy root/database/test_errors'