.github/workflows/main.yml #964
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: '0 0 * * *' | |
jobs: | |
# | |
# Verify build and installation. | |
# | |
install: | |
runs-on: ubuntu-18.04 | |
strategy: | |
matrix: | |
python-version: [3.6, 3.7, 3.8] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v1 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- run: python3 setup.py install | |
# | |
# The statement below is used for debugging the Github job. | |
# | |
- run: python3 --version | |
# | |
# Verify "pylint" runs successfully. | |
# | |
# Note, we need to have "drgn" installed in order to run "pylint". | |
# Thus, prior to running "pylint" we have to clone, build, and install | |
# the "drgn" from source (there's no package currently available). | |
# | |
pylint: | |
runs-on: ubuntu-18.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v1 | |
with: | |
python-version: '3.6' | |
- run: ./.github/scripts/install-libkdumpfile.sh | |
- run: ./.github/scripts/install-drgn.sh | |
- run: python3 -m pip install pylint | |
# | |
# libkdumpfile doesn't install its Python files properly | |
# as Github's python environment is a bit quirky. This | |
# make pylint raise import errors when importing its API | |
# from Python. Thus the `-d import-error` part. | |
# | |
- run: pylint -d import-error savedump | |
# | |
# Verify "yapf" runs successfully. | |
# | |
yapf: | |
runs-on: ubuntu-18.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v1 | |
with: | |
python-version: '3.6' | |
- run: python3 -m pip install yapf | |
- run: yapf --diff --style google --recursive savedump | |
# | |
# Verify "mypy" runs successfully. | |
# | |
# Note, we need to have drgn and libkdumpfile installed in order to | |
# run "mypy". Thus, prior to running "mypy" we have to clone, build, | |
# and install them from source (there are no packages currently | |
# available). | |
# | |
# Also note the following 2 things specific to mypy: | |
# [1] We supply --allow-untyped-calls because even though drgn has | |
# stubs on typeshed now, there are still some untyped functions | |
# (mainly in the helper API). | |
# [2] We supply --ignore-missing-imports to the tests package because | |
# libkdumpfile doesn't provide stubs on typeshed. | |
# | |
mypy: | |
runs-on: ubuntu-18.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v1 | |
with: | |
python-version: '3.6' | |
- run: ./.github/scripts/install-libkdumpfile.sh | |
- run: ./.github/scripts/install-drgn.sh | |
- run: python3 -m pip install mypy | |
- run: python3 -m mypy --strict --allow-untyped-calls --ignore-missing-imports --show-error-codes -p savedump | |
# | |
# Verify that "shfmt" ran successfully against our shell scripts. | |
# | |
shfmt: | |
runs-on: ubuntu-18.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: delphix/actions/shfmt@master |