Skip to content

.github/workflows/main.yml #1193

.github/workflows/main.yml

.github/workflows/main.yml #1193

Workflow file for this run

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