Added unit tests to Github Actions (#16610)
* Added unit tests to Github Actions * Set user e-mail and name for git tests to succeed * Simplify setup.sh logic * Replicate Travis script on Github Actions * Update flags since '.' is not allowed * Added badge, simplified workflow * Remove pinning of coverage * Remove unit tests run on Github Actions from Travis
This commit is contained in:
parent
404ff9eb32
commit
239b709f97
4 changed files with 67 additions and 35 deletions
61
.github/workflows/linux_unit_tests.yaml
vendored
Normal file
61
.github/workflows/linux_unit_tests.yaml
vendored
Normal file
|
@ -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
|
21
.travis.yml
21
.travis.yml
|
@ -41,27 +41,6 @@ jobs:
|
||||||
- realpath
|
- realpath
|
||||||
- zsh
|
- zsh
|
||||||
env: [ TEST_SUITE=unit, COVERAGE=true ]
|
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'
|
- python: '3.8'
|
||||||
os: linux
|
os: linux
|
||||||
language: python
|
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
|
# <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/workflows/macos%20tests/badge.svg)](https://github.com/spack/spack/actions)
|
[![MacOS Tests](https://github.com/spack/spack/workflows/macos%20tests/badge.svg)](https://github.com/spack/spack/actions)
|
||||||
[![Build Status](https://travis-ci.com/spack/spack.svg?branch=develop)](https://travis-ci.com/spack/spack)
|
[![Linux Tests](https://github.com/spack/spack/workflows/linux%20tests/badge.svg)](https://github.com/spack/spack/actions)
|
||||||
[![Linux Builds](https://github.com/spack/spack/workflows/linux%20builds/badge.svg)](https://github.com/spack/spack/actions)
|
[![Linux Builds](https://github.com/spack/spack/workflows/linux%20builds/badge.svg)](https://github.com/spack/spack/actions)
|
||||||
[![macOS Builds (nightly)](https://github.com/spack/spack/workflows/macOS%20builds%20nightly/badge.svg?branch=develop)](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22)
|
[![macOS Builds (nightly)](https://github.com/spack/spack/workflows/macOS%20builds%20nightly/badge.svg?branch=develop)](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22)
|
||||||
|
[![Build Status](https://travis-ci.com/spack/spack.svg?branch=develop)](https://travis-ci.com/spack/spack)
|
||||||
[![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack)
|
[![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack)
|
||||||
[![Read the Docs](https://readthedocs.org/projects/spack/badge/?version=latest)](https://spack.readthedocs.io)
|
[![Read the Docs](https://readthedocs.org/projects/spack/badge/?version=latest)](https://spack.readthedocs.io)
|
||||||
[![Slack](https://spackpm.herokuapp.com/badge.svg)](https://spackpm.herokuapp.com)
|
[![Slack](https://spackpm.herokuapp.com/badge.svg)](https://spackpm.herokuapp.com)
|
||||||
|
|
|
@ -20,24 +20,15 @@ export SPACK_ROOT=$(realpath "$QA_DIR/../../..")
|
||||||
coverage=""
|
coverage=""
|
||||||
coverage_run=""
|
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.
|
# Set up some variables for running coverage tests.
|
||||||
if [[ "$COVERAGE" == "true" ]]; then
|
if [[ "$COVERAGE" == "true" ]]; then
|
||||||
# these set up coverage for Python
|
# these set up coverage for Python
|
||||||
coverage=coverage
|
coverage=coverage
|
||||||
coverage_run="coverage run"
|
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
|
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)
|
||||||
|
|
Loading…
Reference in a new issue