Skip to content

Commit

Permalink
Reconfigure GH Actions
Browse files Browse the repository at this point in the history
Signed-off-by: Cristian Le <[email protected]>
  • Loading branch information
LecrisUT committed Feb 21, 2024
1 parent 11fd46e commit c1f6922
Show file tree
Hide file tree
Showing 7 changed files with 243 additions and 48 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: CI
run-name: >
CI (${{ github.event_name }})
${{ github.event_name == 'pull_request' && format('PR#{0}', github.event.number) || '' }}
on:
workflow_dispatch:
pull_request:
branches: [ develop ]
push:
branches: [ develop ]

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
pre-commit:
name: pre-commit
uses: ./.github/workflows/step_pre-commit.yaml

tests:
name: test
needs: [ pre-commit ]
uses: ./.github/workflows/step_test.yaml

tests-makefile:
name: test Makefile
needs: [ pre-commit ]
uses: ./.github/workflows/step_test-makefile.yaml

coverage:
name: 👀 coverage
needs: [ tests ]
uses: ./.github/workflows/step_coverage.yaml
secrets:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

docs:
name: 📘 docs
needs: [ pre-commit ]
uses: ./.github/workflows/step_docs.yaml

pass:
name: ✅ Pass
needs: [ pre-commit, tests, docs, coverage ]
runs-on: ubuntu-latest
steps:
- name: Check all CI jobs
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}
if: always()
36 changes: 0 additions & 36 deletions .github/workflows/docs.yml

This file was deleted.

39 changes: 39 additions & 0 deletions .github/workflows/step_coverage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: 👀 coverage

on:
workflow_call:
secrets:
CODECOV_TOKEN:
description: Codecov token of the main repository
required: false


permissions:
contents: read

jobs:
coverage:
name: Coverage
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: lukka/get-cmake@latest
- name: Get test coverage for ${{ matrix.coverage }}
uses: lukka/[email protected]
with:
workflowPreset: ci-coverage
- name: Get lcov data
uses: danielealbano/lcov-action@v3
with:
# Note lcov-action prepends and appends wild-cards *. Account for those
# https://github.com/danielealbano/lcov-action/issues/11
remove_patterns: /test/,/cmake-build*/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
name: ${{ matrix.coverage }} coverage
files: coverage.info
verbose: true
37 changes: 37 additions & 0 deletions .github/workflows/step_docs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 📘 test-docs

on:
workflow_call:

permissions:
contents: read

jobs:
docs:
name: Build docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
- uses: actions/cache@v4
with:
key: mkdocs-w90-${{ env.cache_id }}
path: .cache
restore-keys: |
mkdocs-w90-
- run: pip install -r docs/requirements.txt
- run: mkdocs build -s
working-directory: ./docs
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ENABLE_MKDOCS_GIT_COMMITTERS: False

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/develop'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/site
20 changes: 20 additions & 0 deletions .github/workflows/step_pre-commit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: pre-commit

on:
workflow_call:

permissions:
contents: read

jobs:
pre-commit:
name: Check pre-commit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: pre-commit/[email protected]
Original file line number Diff line number Diff line change
@@ -1,19 +1,12 @@
name: CI
name: test Makefile

on:
pull_request:
push:
branches:
- develop
workflow_call:

permissions:
contents: read

jobs:
pre-commit:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: pre-commit/[email protected]

build:
runs-on: ubuntu-20.04
strategy:
Expand Down
86 changes: 86 additions & 0 deletions .github/workflows/step_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: test

on:
workflow_call:

permissions:
contents: read

jobs:
tests:
name: Check on ${{ matrix.toolchain }} toolchain ${{ matrix.mpi }}
runs-on: ${{ matrix.os || 'ubuntu-latest' }}
container: ${{ !matrix.os && 'ghcr.io/lecrisut/dev-env:main' || '' }}
continue-on-error: ${{ matrix.experimental || false }}
strategy:
fail-fast: false
matrix:
toolchain: [ gcc, llvm, intel ]
mpi: ['', openmpi, mpich, intel]
include:
# flang is missing features in 16.0.6
- toolchain: llvm
experimental: true
steps:
- name: Install missing packages
run: dnf install -y bzip2 python-unversioned-command
- name: Load mpi module ${{ matrix.mpi }}
run: |
# Get interactive profile to be able to load modules
source /etc/profile
# Save the current environment since we only want the added difference
printenv > orig_env
# Load the relevant mpi module
module load mpi/${{ matrix.mpi }}
printenv > module_env
diff orig_env module_env | sed -n 's/> //p' >> $GITHUB_ENV
# Set MPI flag on
echo "WITH_MPI=ON" >> $GITHUB_ENV
if: ${{ matrix.mpi }}
- name: Enable msvc toolchain on windows
uses: ilammy/msvc-dev-cmd@v1
if: contains(matrix.os, 'windows')
- name: Activate Intel compilers
run: |
source /etc/profile
printenv > orig_env
module load compiler
printenv > module_env
diff orig_env module_env | sed -n 's/> //p' >> $GITHUB_ENV
echo $PATH >> $GITHUB_PATH
if: matrix.toolchain == 'intel'
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
- name: Run CMake configuration for ${{ matrix.toolchain }} toolchain
uses: lukka/[email protected]
with:
workflowPreset: "${{ matrix.toolchain }}-ci"

coverage:
name: Check test coverage
runs-on: ubuntu-latest
needs: [ tests ]
steps:
- uses: actions/checkout@v3
- uses: lukka/get-cmake@latest
- name: Get test coverage
uses: lukka/[email protected]
with:
workflowPreset: ci-coverage
- name: Get lcov data
uses: danielealbano/lcov-action@v3
with:
# Note lcov-action prepends and appends wild-cards *. Account for those
# https://github.com/danielealbano/lcov-action/issues/11
remove_patterns: /test/,/cmake-build*/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
name: ${{ matrix.coverage }} coverage
files: coverage.info
flags: ${{ matrix.coverage }}
verbose: true

0 comments on commit c1f6922

Please sign in to comment.