Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[py] Adding initial GH workflow for Python #9031

Merged
merged 7 commits into from
Jan 7, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 186 additions & 0 deletions .github/workflows/python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
name: Python workflow

on:
push:
branches:
- trunk
pull_request:
branches:
- trunk

jobs:
tox_flake8:
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox==2.4.1
- name: Test with tox
run: tox -c py/tox.ini
env:
TOXENV: flake8

tox_docs:
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install tox==2.4.1
- name: Test with tox
run: tox -c py/tox.ini
env:
TOXENV: docs

unit_tests:
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Cache Bazel artifacts
uses: actions/cache@v2
with:
path: |
~/.cache/bazel-disk
~/.cache/bazel-repo
key: ${{ runner.os }}-bazel-python-unit-tests-${{ hashFiles('**/BUILD.bazel') }}
restore-keys: |
${{ runner.os }}-bazel-python-unit-tests-
- name: Setup bazelisk
uses: ./.github/actions/setup-bazelisk
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Run unit tests
uses: ./.github/actions/bazel
with:
command: test //py:unit

chrome_tests:
needs: unit_tests
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Cache Bazel artifacts
uses: actions/cache@v2
with:
path: |
~/.cache/bazel-disk
~/.cache/bazel-repo
key: ${{ runner.os }}-bazel-chrome-tests-${{ hashFiles('**/BUILD.bazel') }}
restore-keys: |
${{ runner.os }}-bazel-chrome-tests-
${{ runner.os }}-bazel-python-unit-tests-
- name: Setup bazelisk
uses: ./.github/actions/setup-bazelisk
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Setup Chrome and chromedriver
uses: ./.github/actions/setup-chrome
- name: Start XVFB
run: Xvfb :99 &
- name: Run browser tests in Chrome
uses: ./.github/actions/bazel
with:
command: test //py:test-chrome
env:
DISPLAY: :99

firefox_tests_remote:
needs: unit_tests
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Cache Bazel artifacts
uses: actions/cache@v2
with:
path: |
~/.cache/bazel-disk
~/.cache/bazel-repo
key: ${{ runner.os }}-bazel-firefox-tests-${{ hashFiles('**/BUILD.bazel') }}
restore-keys: |
${{ runner.os }}-bazel-firefox-tests-
${{ runner.os }}-bazel-python-unit-tests-
- name: Setup bazelisk
uses: ./.github/actions/setup-bazelisk
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Setup Firefox and geckodriver
uses: ./.github/actions/setup-firefox
- name: Start XVFB
run: Xvfb :99 &
- name: Run browser tests in Firefox (Remote)
uses: ./.github/actions/bazel
with:
command: test --jobs 1 //py:test-remote
env:
DISPLAY: :99

firefox_tests:
needs: unit_tests
runs-on: ubuntu-latest
steps:
- name: Checkout source tree
uses: actions/checkout@v2
- name: Cache Bazel artifacts
uses: actions/cache@v2
with:
path: |
~/.cache/bazel-disk
~/.cache/bazel-repo
key: ${{ runner.os }}-bazel-firefox-tests-${{ hashFiles('**/BUILD.bazel') }}
restore-keys: |
${{ runner.os }}-bazel-firefox-tests-
${{ runner.os }}-bazel-python-unit-tests-
- name: Setup bazelisk
uses: ./.github/actions/setup-bazelisk
- name: Set up Python 3.7
uses: actions/setup-python@v2
with:
python-version: 3.7
- name: Setup Java
uses: actions/setup-java@v1
with:
java-version: '11'
- name: Setup Firefox and geckodriver
uses: ./.github/actions/setup-firefox
- name: Start XVFB
run: Xvfb :99 &
- name: Run browser tests in Firefox
uses: ./.github/actions/bazel
with:
command: test //py:test-firefox
env:
DISPLAY: :99
3 changes: 3 additions & 0 deletions py/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,7 @@ py_test_suite(
requirement("pytest"),
requirement("pytest-instafail"),
requirement("pytest-trio"),
requirement("six"),
requirement("sortedcontainers"),
requirement("sniffio"),
requirement("zipp"),
Expand Down Expand Up @@ -405,6 +406,7 @@ py_test_suite(
requirement("pytest"),
requirement("pytest-instafail"),
requirement("pytest-trio"),
requirement("six"),
requirement("sortedcontainers"),
requirement("sniffio"),
requirement("zipp"),
Expand Down Expand Up @@ -445,6 +447,7 @@ py_test_suite(
requirement("pytest"),
requirement("pytest-instafail"),
requirement("pytest-trio"),
requirement("six"),
requirement("sortedcontainers"),
requirement("sniffio"),
requirement("zipp"),
Expand Down