Skip to content

#97: Add more environments to test in CI #209

#97: Add more environments to test in CI

#97: Add more environments to test in CI #209

name: Build and Test (ubuntu)
# Trigger the workflow on push or pull request
on:
push:
branches:
- master
pull_request:
types: [opened, reopened, synchronize, converted_to_draft, ready_for_review]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image:
- ubuntu_22.04-gcc_11-vtk_9.2.2-py_3.all
- ubuntu_22.04-clang_11-vtk_9.2.2-py_3.all
- ubuntu_22.04-gcc_12-vtk_9.3.0-py_3.all
- ubuntu_24.04-gcc_13-vtk_9.3.1-py_3.all
env:
OUTPUT_DIR: '/tmp/artifacts'
VT_TV_TESTS_ENABLED: 'ON'
VT_TV_COVERAGE_ENABLED: ${{ matrix.image == 'ubuntu_24.04-gcc_13-vtk_9.3.1-py_3.all' && 'ON' || 'OFF' }} # Coverage only with main test image
DOCKER_REPOSITORY: lifflander1/vt
DOCKER_TAG: ~
name: vt-tv build and test
steps:
- uses: actions/checkout@v4
- name: CI Variables
id: vars
run: echo "DOCKER_TAG=$(echo ${{ github.ref }} | cut -d'/' -f3- | sed 's/[^a-z0-9_-]/__/gi')" >> $GITHUB_ENV
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Inspect Builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
echo "DOCKER_TAG: ${{ env.DOCKER_TAG }}"
- name: Build the Docker Image; build and test vt-tv
id: docker_build
continue-on-error: false
uses: docker/build-push-action@v6
with:
push: false
# tags: ${{ env.DOCKER_TAG }}
context: .
file: ./ci/docker/build-and-test-ubuntu.dockerfile
build-args: |
BASE_IMAGE=${{ env.DOCKER_REPOSITORY }}:${{ matrix.image }}
VT_TV_TESTS_ENABLED=${{ env.VT_TV_TESTS_ENABLED }}
VT_TV_COVERAGE_ENABLED=${{ env.VT_TV_COVERAGE_ENABLED }}
outputs: type=local,dest=${{ env.OUTPUT_DIR }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: vt-tv-Artifacts-${{ matrix.image }}
path: ${{ env.OUTPUT_DIR }}
- name: Unit tests
if: ${{ env.VT_TV_TESTS_ENABLED == 'ON' }}
uses: phoenix-actions/test-reporting@v15
with:
name: Tests report
path: ${{ env.OUTPUT_DIR }}/tmp/artifacts/junit-report.xml
reporter: java-junit
output-to: step-summary
- name: Coverage summary
if: ${{ (success() || failure()) && env.VT_TV_COVERAGE_ENABLED == 'ON' }}
run: |
echo '## Coverage' >> $GITHUB_STEP_SUMMARY
echo '```shell' >> $GITHUB_STEP_SUMMARY
cat ${{ env.OUTPUT_DIR }}/tmp/artifacts/lcov-list-report.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY