Moved flake8, shell and documentation tests to Github Action (#17328)
* Move flake8 tests on Github Actions * Move shell test to Github Actions * Moved documentation build to Github Action * Don't run coverage on Python 2.6 Since we get connection errors consistently on Travis when trying to upload coverage results for Python 2.6, avoid computing coverage entirely to speed-up tests.
This commit is contained in:
parent
c064088cf3
commit
fc94dde3fc
80
.github/workflows/linux_unit_tests.yaml
vendored
80
.github/workflows/linux_unit_tests.yaml
vendored
@ -60,3 +60,83 @@ jobs:
|
|||||||
uses: codecov/codecov-action@v1
|
uses: codecov/codecov-action@v1
|
||||||
with:
|
with:
|
||||||
flags: unittests,linux
|
flags: unittests,linux
|
||||||
|
flake8:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
- name: Install Python packages
|
||||||
|
run: |
|
||||||
|
pip install --upgrade pip six setuptools flake8
|
||||||
|
- name: Setup git configuration
|
||||||
|
run: |
|
||||||
|
# Need this for the git tests to succeed.
|
||||||
|
git --version
|
||||||
|
git config --global user.email "spack@example.com"
|
||||||
|
git config --global user.name "Test User"
|
||||||
|
git fetch -u origin develop:develop
|
||||||
|
- name: Run flake8 tests
|
||||||
|
run: |
|
||||||
|
share/spack/qa/run-flake8-tests
|
||||||
|
shell:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
- name: Install System packages
|
||||||
|
run: |
|
||||||
|
sudo apt-get -y update
|
||||||
|
sudo apt-get install -y coreutils gfortran gnupg2 mercurial ninja-build patchelf zsh fish
|
||||||
|
# Needed for kcov
|
||||||
|
sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev
|
||||||
|
- name: Install Python packages
|
||||||
|
run: |
|
||||||
|
pip install --upgrade pip six setuptools codecov coverage
|
||||||
|
- name: Setup git configuration
|
||||||
|
run: |
|
||||||
|
# Need this for the git tests to succeed.
|
||||||
|
git --version
|
||||||
|
git config --global user.email "spack@example.com"
|
||||||
|
git config --global user.name "Test User"
|
||||||
|
git fetch -u origin develop:develop
|
||||||
|
- name: Install kcov for bash script coverage
|
||||||
|
env:
|
||||||
|
KCOV_VERSION: 38
|
||||||
|
run: |
|
||||||
|
KCOV_ROOT=$(mktemp -d)
|
||||||
|
wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz
|
||||||
|
tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz
|
||||||
|
mkdir -p ${KCOV_ROOT}/build
|
||||||
|
cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd -
|
||||||
|
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
|
||||||
|
- name: Run shell tests
|
||||||
|
env:
|
||||||
|
COVERAGE: true
|
||||||
|
run: |
|
||||||
|
share/spack/qa/run-shell-tests
|
||||||
|
- name: Upload to codecov.io
|
||||||
|
uses: codecov/codecov-action@v1
|
||||||
|
with:
|
||||||
|
flags: shelltests,linux
|
||||||
|
documentation:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: 3.8
|
||||||
|
- name: Install System packages
|
||||||
|
run: |
|
||||||
|
sudo apt-get -y update
|
||||||
|
sudo apt-get install -y coreutils ninja-build graphviz
|
||||||
|
- name: Install Python packages
|
||||||
|
run: |
|
||||||
|
pip install --upgrade pip six setuptools
|
||||||
|
pip install --upgrade -r lib/spack/docs/requirements.txt
|
||||||
|
- name: Build documentation
|
||||||
|
run: |
|
||||||
|
share/spack/qa/run-doc-tests
|
||||||
|
107
.travis.yml
107
.travis.yml
@ -1,6 +1,3 @@
|
|||||||
#=============================================================================
|
|
||||||
# Project settings
|
|
||||||
#=============================================================================
|
|
||||||
# Only build master and develop on push; do not build every branch.
|
# Only build master and develop on push; do not build every branch.
|
||||||
branches:
|
branches:
|
||||||
only:
|
only:
|
||||||
@ -8,30 +5,13 @@ branches:
|
|||||||
- develop
|
- develop
|
||||||
- /^releases\/.*$/
|
- /^releases\/.*$/
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Build matrix
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
dist: bionic
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
fast_finish: true
|
|
||||||
include:
|
|
||||||
- stage: 'style checks'
|
|
||||||
python: '3.8'
|
|
||||||
os: linux
|
|
||||||
language: python
|
language: python
|
||||||
env: TEST_SUITE=flake8
|
|
||||||
- stage: 'unit tests + documentation'
|
|
||||||
python: '2.6'
|
python: '2.6'
|
||||||
dist: trusty
|
dist: trusty
|
||||||
os: linux
|
os: linux
|
||||||
language: python
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
# Everything but patchelf, that is not available for trusty
|
|
||||||
packages:
|
packages:
|
||||||
- ccache
|
|
||||||
- gfortran
|
- gfortran
|
||||||
- graphviz
|
- graphviz
|
||||||
- gnupg2
|
- gnupg2
|
||||||
@ -41,74 +21,14 @@ jobs:
|
|||||||
- realpath
|
- realpath
|
||||||
- zsh
|
- zsh
|
||||||
- fish
|
- fish
|
||||||
env: [ TEST_SUITE=unit, COVERAGE=true ]
|
|
||||||
- python: '3.8'
|
|
||||||
os: linux
|
|
||||||
language: python
|
|
||||||
env: [ TEST_SUITE=shell, COVERAGE=true, KCOV_VERSION=38 ]
|
|
||||||
- python: '3.8'
|
|
||||||
os: linux
|
|
||||||
language: python
|
|
||||||
env: TEST_SUITE=doc
|
|
||||||
|
|
||||||
stages:
|
|
||||||
- 'style checks'
|
|
||||||
- 'unit tests + documentation'
|
|
||||||
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Environment
|
|
||||||
#=============================================================================
|
|
||||||
|
|
||||||
# Docs need graphviz to build
|
|
||||||
addons:
|
|
||||||
# for Linux builds, we use APT
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- ccache
|
|
||||||
- coreutils
|
|
||||||
- gfortran
|
|
||||||
- graphviz
|
|
||||||
- gnupg2
|
|
||||||
- mercurial
|
|
||||||
- ninja-build
|
|
||||||
- patchelf
|
|
||||||
- zsh
|
|
||||||
- fish
|
|
||||||
update: true
|
|
||||||
|
|
||||||
# ~/.ccache needs to be cached directly as Travis is not taking care of it
|
|
||||||
# (possibly because we use 'language: python' and not 'language: c')
|
|
||||||
cache:
|
|
||||||
pip: true
|
|
||||||
ccache: true
|
|
||||||
directories:
|
|
||||||
- ~/.ccache
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- ccache -M 2G && ccache -z
|
|
||||||
# Install kcov manually, since it's not packaged for bionic beaver
|
|
||||||
- if [[ "$KCOV_VERSION" ]]; then
|
|
||||||
sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev zlib1g-dev libdw-dev libiberty-dev;
|
|
||||||
KCOV_ROOT=$(mktemp -d);
|
|
||||||
wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz;
|
|
||||||
tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz;
|
|
||||||
mkdir -p ${KCOV_ROOT}/build;
|
|
||||||
cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd - ;
|
|
||||||
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install;
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Install various dependencies
|
# Install various dependencies
|
||||||
install:
|
install:
|
||||||
- pip install --upgrade pip
|
- pip install --upgrade pip
|
||||||
- pip install --upgrade six
|
- pip install --upgrade six
|
||||||
- pip install --upgrade setuptools
|
- pip install --upgrade setuptools
|
||||||
- pip install --upgrade codecov coverage==4.5.4
|
|
||||||
- pip install --upgrade flake8
|
- pip install --upgrade flake8
|
||||||
- pip install --upgrade pep8-naming
|
- pip install --upgrade pep8-naming
|
||||||
- if [[ "$TEST_SUITE" == "doc" ]]; then
|
|
||||||
pip install --upgrade -r lib/spack/docs/requirements.txt;
|
|
||||||
fi
|
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
# Need this for the git tests to succeed.
|
# Need this for the git tests to succeed.
|
||||||
@ -118,31 +38,12 @@ before_script:
|
|||||||
# Need this to be able to compute the list of changed files
|
# Need this to be able to compute the list of changed files
|
||||||
- git fetch origin ${TRAVIS_BRANCH}:${TRAVIS_BRANCH}
|
- git fetch origin ${TRAVIS_BRANCH}:${TRAVIS_BRANCH}
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Building
|
|
||||||
#=============================================================================
|
|
||||||
script:
|
script:
|
||||||
- share/spack/qa/run-$TEST_SUITE-tests
|
- python bin/spack -h
|
||||||
|
- python bin/spack help -a
|
||||||
|
- python bin/spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
|
||||||
|
- python bin/spack test -x --verbose
|
||||||
|
|
||||||
after_success:
|
|
||||||
- ccache -s
|
|
||||||
- case "$TEST_SUITE" in
|
|
||||||
unit)
|
|
||||||
if [[ "$COVERAGE" == "true" ]]; then
|
|
||||||
codecov --env PYTHON_VERSION
|
|
||||||
--required
|
|
||||||
--flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
shell)
|
|
||||||
codecov --env PYTHON_VERSION
|
|
||||||
--required
|
|
||||||
--flags "${TEST_SUITE}${TRAVIS_OS_NAME}";
|
|
||||||
esac
|
|
||||||
|
|
||||||
#=============================================================================
|
|
||||||
# Notifications
|
|
||||||
#=============================================================================
|
|
||||||
notifications:
|
notifications:
|
||||||
email:
|
email:
|
||||||
recipients:
|
recipients:
|
||||||
|
@ -1143,8 +1143,6 @@ def read():
|
|||||||
assert vals['read'] == 1
|
assert vals['read'] == 1
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skipif('macos' in os.environ.get('GITHUB_WORKFLOW', ''),
|
|
||||||
reason="Skip failing test for GA on MacOS")
|
|
||||||
def test_lock_debug_output(lock_path):
|
def test_lock_debug_output(lock_path):
|
||||||
host = socket.getfqdn()
|
host = socket.getfqdn()
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
ORIGINAL_PATH="$PATH"
|
ORIGINAL_PATH="$PATH"
|
||||||
|
|
||||||
. "$(dirname $0)/setup.sh"
|
. "$(dirname $0)/setup.sh"
|
||||||
check_dependencies $coverage git hg svn
|
check_dependencies $coverage kcov git hg svn
|
||||||
|
|
||||||
# Clean the environment by removing Spack from the path and getting rid of
|
# Clean the environment by removing Spack from the path and getting rid of
|
||||||
# the spack shell function
|
# the spack shell function
|
||||||
|
@ -37,11 +37,7 @@ bin/spack -h
|
|||||||
bin/spack help -a
|
bin/spack help -a
|
||||||
|
|
||||||
# Profile and print top 20 lines for a simple call to spack spec
|
# Profile and print top 20 lines for a simple call to spack spec
|
||||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
spack -p --lines 20 spec openmpi
|
|
||||||
else
|
|
||||||
spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
|
spack -p --lines 20 spec mpileaks%gcc ^elfutils@0.170
|
||||||
fi
|
|
||||||
|
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Run unit tests with code coverage
|
# Run unit tests with code coverage
|
||||||
|
@ -26,15 +26,12 @@ if [[ "$COVERAGE" == "true" ]]; then
|
|||||||
coverage=coverage
|
coverage=coverage
|
||||||
coverage_run="coverage run"
|
coverage_run="coverage run"
|
||||||
|
|
||||||
# bash coverage depends on some other factors -- there are issues with
|
# bash coverage depends on some other factors
|
||||||
# kcov for Python 2.6, unit tests, and build tests.
|
|
||||||
if [[ $TRAVIS_PYTHON_VERSION != 2.6 ]]; then
|
|
||||||
mkdir -p coverage
|
mkdir -p coverage
|
||||||
cc_script="$SPACK_ROOT/lib/spack/env/cc"
|
cc_script="$SPACK_ROOT/lib/spack/env/cc"
|
||||||
bashcov=$(realpath ${QA_DIR}/bashcov)
|
bashcov=$(realpath ${QA_DIR}/bashcov)
|
||||||
sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script"
|
sed -i~ "s@#\!/bin/bash@#\!${bashcov}@" "$cc_script"
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Description:
|
# Description:
|
||||||
@ -74,6 +71,9 @@ check_dependencies() {
|
|||||||
spack_package=mercurial
|
spack_package=mercurial
|
||||||
pip_package=mercurial
|
pip_package=mercurial
|
||||||
;;
|
;;
|
||||||
|
kcov)
|
||||||
|
spack_package=kcov
|
||||||
|
;;
|
||||||
svn)
|
svn)
|
||||||
spack_package=subversion
|
spack_package=subversion
|
||||||
;;
|
;;
|
||||||
|
Loading…
Reference in New Issue
Block a user