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 rhel8-platform-python: runs-on: ubuntu-latest container: registry.access.redhat.com/ubi8/ubi steps: - name: Install dependencies run: | dnf install -y \ bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \ make patch tcl unzip which xz - uses: actions/checkout@v2 - name: Setup repo and non-root user run: | git --version git fetch --unshallow . .github/workflows/setup_git.sh useradd spack-test chown -R spack-test . - name: Run unit tests env: SPACK_PYTHON: /usr/libexec/platform-python shell: runuser -u spack-test -- bash {0} run: | source share/spack/setup-env.sh spack unit-test -k 'not svn and not hg' -x --verbose 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) unit-test -v coverage combine coverage xml - uses: codecov/codecov-action@v1 with: flags: unittests,linux,clingo clingo-cffi: # Test for the clingo based solver using the CFFI package runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: fetch-depth: 0 - uses: actions/setup-python@v2 with: python-version: 3.8 - 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 cffi pip install -i https://test.pypi.org/simple/ clingo-cffi - 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 run: | whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER python -c "import clingo; print(hasattr(clingo.Symbol, '_rep'), clingo.__version__)" . share/spack/setup-env.sh spack compiler find spack solve mpileaks%gcc coverage run $(which spack) unit-test -v coverage combine coverage xml - uses: codecov/codecov-action@v1 with: flags: unittests,linux,clingo