name: linux tests on: push: branches: - develop - releases/** pull_request: branches: - develop - releases/** jobs: unittests: runs-on: ubuntu-latest strategy: matrix: python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9] steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install System packages run: | sudo apt-get -y update # Needed for unit tests sudo apt-get install -y coreutils gfortran graphviz gnupg2 mercurial sudo apt-get install -y ninja-build patchelf # Needed for kcov sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev sudo apt-get -y install 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 . .github/workflows/setup_git.sh - 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 - uses: codecov/codecov-action@v1 with: flags: unittests,linux shell: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: actions/setup-python@v2 with: python-version: 3.9 - name: Install System packages run: | sudo apt-get -y update # Needed for shell tests sudo apt-get install -y coreutils csh zsh tcsh fish dash bash # Needed for kcov sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev sudo apt-get -y install 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 . .github/workflows/setup_git.sh - 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 - uses: codecov/codecov-action@v1 with: flags: shelltests,linux centos6: # Test for Python2.6 run on Centos 6 runs-on: ubuntu-latest container: spack/github-actions:centos6 steps: - name: Run unit tests env: HOME: /home/spack-test run: | whoami && echo $HOME && cd $HOME git clone https://github.com/spack/spack.git && cd spack git fetch origin ${{ github.ref }}:test-branch git checkout test-branch share/spack/qa/run-unit-tests clingo: # Test for the clingo based solver runs-on: ubuntu-latest container: spack/github-actions:clingo steps: - name: Run unit tests run: | whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER which clingo && clingo --version git clone https://github.com/spack/spack.git && cd spack git fetch origin ${{ github.ref }}:test-branch git checkout test-branch . share/spack/setup-env.sh spack compiler find spack solve mpileaks%gcc coverage run $(which spack) test -v coverage combine coverage xml - uses: codecov/codecov-action@v1 with: flags: unittests,linux,clingo