diff options
-rw-r--r-- | .github/workflows/linux_unit_tests.yaml | 61 | ||||
-rw-r--r-- | .travis.yml | 21 | ||||
-rw-r--r-- | README.md | 5 | ||||
-rwxr-xr-x | share/spack/qa/setup.sh | 15 |
4 files changed, 67 insertions, 35 deletions
diff --git a/.github/workflows/linux_unit_tests.yaml b/.github/workflows/linux_unit_tests.yaml new file mode 100644 index 0000000000..0fe20200ad --- /dev/null +++ b/.github/workflows/linux_unit_tests.yaml @@ -0,0 +1,61 @@ +name: linux tests + +on: + push: + branches: + - master + - develop + pull_request: + branches: + - master + - develop +jobs: + unittests: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [2.7, 3.5, 3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v2 + - name: Setup Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install System packages + run: | + sudo apt-get -y update + sudo apt-get install -y coreutils gfortran graphviz gnupg2 mercurial ninja-build patchelf + # 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: 34 + 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 unit tests + env: + COVERAGE: true + run: | + share/spack/qa/run-unit-tests + coverage combine + coverage xml + - name: Upload to codecov.io + uses: codecov/codecov-action@v1 + with: + flags: unittests,linux diff --git a/.travis.yml b/.travis.yml index 8107ad876d..b59d1666d8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -41,27 +41,6 @@ jobs: - realpath - zsh env: [ TEST_SUITE=unit, COVERAGE=true ] - - python: '2.7' - os: linux - language: python - env: [ TEST_SUITE=unit, COVERAGE=true, KCOV_VERSION=34 ] - - python: '3.5' - os: linux - dist: xenial - language: python - env: TEST_SUITE=unit - - python: '3.6' - os: linux - language: python - env: TEST_SUITE=unit - - python: '3.7' - os: linux - language: python - env: TEST_SUITE=unit - - python: '3.8' - os: linux - language: python - env: [ TEST_SUITE=unit, COVERAGE=true, KCOV_VERSION=34 ] - python: '3.8' os: linux language: python @@ -1,9 +1,10 @@ # <img src="https://cdn.rawgit.com/spack/spack/develop/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack -[](https://github.com/spack/spack/actions) -[](https://travis-ci.com/spack/spack) +[](https://github.com/spack/spack/actions) +[](https://github.com/spack/spack/actions) [](https://github.com/spack/spack/actions) [](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22) +[](https://travis-ci.com/spack/spack) [](https://codecov.io/gh/spack/spack) [](https://spack.readthedocs.io) [](https://spackpm.herokuapp.com) diff --git a/share/spack/qa/setup.sh b/share/spack/qa/setup.sh index 61fb2a7706..6536479015 100755 --- a/share/spack/qa/setup.sh +++ b/share/spack/qa/setup.sh @@ -20,24 +20,15 @@ export SPACK_ROOT=$(realpath "$QA_DIR/../../..") coverage="" coverage_run="" -# bash coverage depends on some other factors -- there are issues with -# kcov for Python 2.6, unit tests, and build tests. -if [[ $TEST_SUITE == unit && # kcov segfaults for the MPICH build test - $TRAVIS_OS_NAME == linux && - $TRAVIS_PYTHON_VERSION != 2.6 ]]; -then - BASH_COVERAGE="true" -else - BASH_COVERAGE="false" -fi - # Set up some variables for running coverage tests. if [[ "$COVERAGE" == "true" ]]; then # these set up coverage for Python coverage=coverage coverage_run="coverage run" - if [ "$BASH_COVERAGE" = true ]; then + # bash coverage depends on some other factors -- there are issues with + # kcov for Python 2.6, unit tests, and build tests. + if [[ $TRAVIS_PYTHON_VERSION != 2.6 ]]; then mkdir -p coverage cc_script="$SPACK_ROOT/lib/spack/env/cc" bashcov=$(realpath ${QA_DIR}/bashcov) |