summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2020-06-23 15:24:02 +0200
committerGitHub <noreply@github.com>2020-06-23 08:24:02 -0500
commit239b709f97028d3595f615e914fc4662ae48925f (patch)
treeb4f59b41a0493593a1afc5e0320a93eaf35273d2 /.github
parent404ff9eb326566b98d836af92acf4e91ac419392 (diff)
downloadspack-239b709f97028d3595f615e914fc4662ae48925f.tar.gz
spack-239b709f97028d3595f615e914fc4662ae48925f.tar.bz2
spack-239b709f97028d3595f615e914fc4662ae48925f.tar.xz
spack-239b709f97028d3595f615e914fc4662ae48925f.zip
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
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/linux_unit_tests.yaml61
1 files changed, 61 insertions, 0 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