typo #1084
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- '**' # Push events on all branches | |
paths-ignore: | |
- '.github/workflows/init.yml' | |
tags: | |
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 including semver | |
jobs: | |
build_wheel: | |
runs-on: self-ubuntu-22.04 | |
name: Build wheel | |
if: "!contains(github.event.head_commit.message, 'wheel skip')" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Create Virtual Environment | |
run: | | |
python3 -m venv .venv | |
source .venv/bin/activate | |
pip3 install -r requirements.txt | |
- name: Compile | |
run: python3 -m build --wheel | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheel-artifacts | |
path: dist/*.whl | |
tests: | |
runs-on: self-ubuntu-22.04 | |
name: Integration Tests | |
needs: build_wheel | |
if: "!contains(github.event.head_commit.message, 'tests skip')" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: wheel-artifacts | |
path: dist/ | |
- name: Install Python dependencies | |
run: | | |
python -m venv .venv | |
source .venv/bin/activate | |
python3 -m pip install --upgrade pip | |
python3 -m pip install pytest | |
python3 -m pip install dist/*.whl | |
- name: Unit tests | |
run: | | |
source .venv/bin/activate | |
python3 -m pytest | |
env: | |
GIRDER_API_KEY: ${{secrets.GIRDER}} | |
- name: Compile test applications | |
run: | | |
mpic++ -std=c++17 -O3 examples/parallelsum/parallelSum.cpp -o examples/parallelsum/parallelSum | |
- name: Test benchmarks | |
run: | | |
source .venv/bin/activate | |
feelpp-benchmarking-exec -mc examples/machines/default.json -bc examples/parallelsum/parallelSum.json -pc examples/parallelsum/plots.json | |
echo $? | |
- name: Dry-run reports | |
run: | | |
source .venv/bin/activate | |
feelpp-benchmarking-render --config-file reports/website_config.json | |
- name: Check files | |
run: | #TODO: check if not empty (maybe) | |
nb_rfm_report_files=$(ls -1q reports/parallelSum/parallel_sum/default|wc -l) | |
nb_doc_reports=$(ls -1q docs/modules/ROOT/pages/reports/|wc -l) | |
if [ "$nb_rfm_report_files" -ne 1 ] || [ "$nb_doc_reports" -ne 1 ]; then | |
echo "Reports where not rendered." | |
exit 1 | |
fi | |
docs: | |
runs-on: self-ubuntu-22.04 | |
name: Build Antora Site | |
needs: build_wheel | |
if: "!contains(github.event.head_commit.message, 'docs skip')" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install credentials | |
run: echo https://$GITHUB_OAUTH:@github.com > $HOME/.git-credentials | |
env: | |
GITHUB_OAUTH: ${{ secrets.CR_PAT_WORKFLOW }} | |
- name: Install NPM dependencies | |
run: npm install | |
- name: Download | |
uses: actions/download-artifact@v4 | |
with: | |
name: wheel-artifacts | |
path: dist/ | |
- name: Install Python dependencies | |
run: | | |
python -m venv .venv | |
source .venv/bin/activate | |
pip3 install dist/*.whl | |
tree .venv | |
- name: Download website config | |
run: | | |
source .venv/bin/activate | |
source ./girder_deploy_config.sh | |
feelpp-girder download --girder_id=$production_website_config_id --output_dir=./tmp/ --filename=website_config.json | |
env: | |
GIRDER_API_KEY: ${{secrets.GIRDER}} | |
- name: Render reports | |
run: | | |
source .venv/bin/activate | |
feelpp-benchmarking-render --config-file=./tmp/website_config.json | |
env: | |
GIRDER_API_KEY: ${{ secrets.GIRDER }} | |
- name: Build Antora Site | |
run: | | |
source .venv/bin/activate | |
npm run antora | |
- name: Deploy | |
if: ${{ github.ref_name == 'master' }} | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
branch: gh-pages # The branch the action should deploy to. | |
folder: public # The folder the action should deploy. | |
deliver: | |
runs-on: self-ubuntu-22.04 | |
name: Build docker, tag and push | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: | | |
ghcr.io/feelpp/benchmarking | |
tags: | | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.CR_PAT }} | |
- name: Build container image | |
uses: docker/build-push-action@v6 | |
with: | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
file: ./Dockerfile | |
release: | |
runs-on: self-ubuntu-22.04 | |
name: Release | |
needs: [build_wheel] | |
if: startsWith(github.ref ,'refs/tags/v') | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Wheel Packages | |
uses: actions/download-artifact@v4 | |
with: | |
name: wheel-artifacts | |
path: dist/ | |
- name: Create Release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: dist/*.whl | |
draft: false | |
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc')}} | |
name: Release ${{ github.ref_name }} | |
generate_release_notes: true | |
tag_name: ${{ github.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} |