diff options
author | Massimiliano Culpo <massimiliano.culpo@gmail.com> | 2020-06-23 15:24:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-23 08:24:02 -0500 |
commit | 239b709f97028d3595f615e914fc4662ae48925f (patch) | |
tree | b4f59b41a0493593a1afc5e0320a93eaf35273d2 /.github | |
parent | 404ff9eb326566b98d836af92acf4e91ac419392 (diff) | |
download | spack-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.yaml | 61 |
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 |