Skip to content

up

up #22

Workflow file for this run

name: CI
on:
push:
branches:
- '**' # Push events on all branches
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: 0
# if: "!contains(github.event.head_commit.message, 'wheel skip')"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
submodules: 'recursive'
-
name: Create Virtual Environment
run: |
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip3 install -I -r requirements.txt
npm install
npx downdoc -o README.md README.adoc
-
name: Compile
run: |
pip3 wheel --no-deps --wheel-dir dist .
env:
CXX: clang++
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
# Artifact name
name: wheel-artifacts
# Directory containing files to upload
path: dist/*.whl
docs:
runs-on: self-ubuntu-24.04
name: Build Antora Site
# needs: build_wheel
if: "!contains(github.event.head_commit.message, 'docs skip')"
steps:
- uses: actions/checkout@v4
with:
lfs: true
submodules: 'recursive'
- 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@v3
# with:
# # Artifact name
# name: wheel-artifacts
# path: dist/
- name: Install Python dependencies
run: |
python -m venv --system-site-packages .venv
source .venv/bin/activate
pip3 install -r requirements.txt
# pip3 install dist/*.whl
# tree .venv
- 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.
build_code:
runs-on: self-ubuntu-24.04
name: Build, Install, Package code
if: "!contains(github.event.head_commit.message, 'code skip')"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
submodules: 'recursive'
-
name: Build
run: |
cmake --preset default
cmake --build --preset default
-
name: Check
run: |
ctest --preset default
env:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
-
name: Package
run: |
cmake --build --preset default -t package
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
# Artifact name
name: feelpp-project-artifacts
# Directory containing files to upload
path: build/default/assets/feelpp-project-*
deliver:
runs-on: self-ubuntu-24.04
needs: build_code
name: Build docker, tag and push
steps:
- uses: actions/checkout@v4
with:
lfs: true
submodules: 'recursive'
- name: Download
uses: actions/download-artifact@v3
with:
# Artifact name
name: feelpp-project-artifacts
path: artifacts/
-
name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
ghcr.io/feelpp/feelpp-project
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@v5
with:
context: artifacts
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, build_code]
if: startsWith(github.ref ,'refs/tags/v')
steps:
- uses: actions/checkout@v4
with:
lfs: true
submodules: 'recursive'
- name: Download Deb Packages
uses: actions/download-artifact@v3
with:
# Artifact name
name: feelpp-project-artifacts
path: artifacts/
- name: Download Wheel Packages
uses: actions/download-artifact@v3
with:
# Artifact name
name: wheel-artifacts
path: dist/
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: |
artifacts/*.deb
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 }}