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
This commit is contained in:
		 Massimiliano Culpo
					Massimiliano Culpo
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						parent
						
							404ff9eb32
						
					
				
				
					commit
					239b709f97
				
			
							
								
								
									
										61
									
								
								.github/workflows/linux_unit_tests.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								.github/workflows/linux_unit_tests.yaml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -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 | ||||
		Reference in New Issue
	
	Block a user