name: linux tests on: push: branches: - master - develop - releases/** 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 flake8: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install Python packages run: | pip install --upgrade pip six setuptools flake8 - 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: Run flake8 tests run: | share/spack/qa/run-flake8-tests shell: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install System packages run: | sudo apt-get -y update sudo apt-get install -y coreutils gfortran gnupg2 mercurial ninja-build patchelf zsh fish # 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: 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 - name: Upload to codecov.io uses: codecov/codecov-action@v1 with: flags: shelltests,linux documentation: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install System packages run: | sudo apt-get -y update sudo apt-get install -y coreutils ninja-build graphviz - name: Install Python packages run: | pip install --upgrade pip six setuptools pip install --upgrade -r lib/spack/docs/requirements.txt - name: Build documentation run: | share/spack/qa/run-doc-tests