Skip to content

Commit

Permalink
refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
a-zakir committed Dec 3, 2024
1 parent 381b31c commit 6fe4d1e
Show file tree
Hide file tree
Showing 6 changed files with 1,016 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .github/workflows/branchNameValidation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: Branch name validation

on:
push:

jobs:
valid-branch-name:
runs-on: ubuntu-latest

steps:

- name: Verify branch name
run: |
if ! [[ "$GITHUB_REF_NAME" =~ ^feature/.*|^features/.*|^fix/.*|^release/.*|^doc/.*|develop|^issue-*|^dependabot/* ]]; then
exit 1
fi
77 changes: 77 additions & 0 deletions .github/workflows/build-userguide.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Build Userguide pdf

on:
release:
types: [created]
push:
branches:
- release/*
- feature/*
- features/*
- fix/*
- issue-*
- doc/*
- dependabot/*
workflow_call:
inputs:
run-tests:
required: true
type: string
target_branch:
required: true
type: string

env:
IS_RELEASE: ${{ github.event_name == 'workflow_dispatch' }}

jobs:

build:

runs-on: ubuntu-20.04
if: "!contains(github.event.head_commit.message, '[skip ci]')"

steps:
- uses: actions/checkout@v4
with:
ref: ${{ inputs.target_branch}}

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip3 install -r requirements-doc.txt
- name: Install libraries
run: |
sudo apt-get update --fix-missing
sudo apt-get install latexmk texlive-latex-recommended texlive-formats-extra
- name: Generate PDF for user-guide
shell: bash
run: |
PDF_NAME=antares-general-reference-guide.pdf
cd docs/pdf-doc-generation-with-sphinx
bash create_pdf_doc.sh $PDF_NAME
echo "PDF_PATH=docs/pdf-doc-generation-with-sphinx/$PDF_NAME" >> $GITHUB_ENV
echo "PDF_PATH_ASSET= [\"docs/pdf-doc-generation-with-sphinx/$PDF_NAME\"]" >> $GITHUB_ENV
- name: user guide upload
uses: actions/upload-artifact@v4
with:
name: pdf-reference-guide
path: ${{ env.PDF_PATH }}


- name: Publish assets
if: ${{ env.IS_RELEASE == 'true' }}
env:
GITHUB_TOKEN: ${{ github.token }}
tag: ${{ github.event.inputs.release_tag }}
run: |
gh release upload "$tag" ${{ env.PDF_PATH }}
31 changes: 31 additions & 0 deletions .github/workflows/clang-format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Check cpp formatting using clang 18.1.3

on:
pull_request:

jobs:
build:
name: clang-format

runs-on: ubuntu-24.04

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Print version
run: clang-format --version

- name: clang-format
run: cd src && ./format-code.sh

- name: git diff
run: |
DIFF=`git status --porcelain`
if [[ $DIFF ]]; then
echo "The following files are not well formatted, please make sure to use clang-format 18.1.3"
echo "$DIFF"
exit 1
else
echo "Code is well formatted, congrats !"
fi
159 changes: 159 additions & 0 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
name: SonarCloud

on:
pull_request:
push:
branches:
- develop

jobs:
sonarcloud:
name: SonarCloud
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, '[skip ci]')"
strategy:
matrix:
os: [ ubuntu-20.04 ]

env:
SONAR_SERVER_URL: "https://sonarcloud.io"
ORTOOLS_DIR: ${{ github.workspace }}/or-tools
# Caching strategy of VCPKG dependencies
VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg_cache,readwrite"
BUILD_WRAPPER_OUT_DIR: ${{ github.workspace }}/_build/output # Directory where build-wrapper output will be placed

steps:
# Disk space on / is insufficient, leading to errors
# We use this 'hack' to remove unused stuff (android, dotnet, etc.) and change partition layout
- name: Maximize build space
uses: easimon/maximize-build-space@v10
with:
root-reserve-mb: 5120
swap-size-mb: 1024
remove-dotnet: true
remove-android: true
remove-haskell: true
remove-codeql: true

- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis

- name: Install VCPKG
run: git submodule update --init vcpkg && ./vcpkg/bootstrap-vcpkg.sh -disableMetrics

- name: Restore vcpkg binary dir from cache
id: cache-vcpkg-binary
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}/vcpkg_cache
key: vcpkg-cache-ubuntu-${{ hashFiles('src/vcpkg.json', '.git/modules/vcpkg/HEAD') }}
# Allows to restore a cache when deps have only partially changed (like adding a dependency)
restore-keys: vcpkg-cache-ubuntu-

- name: Config OR-Tools URL
run: |
echo "ORTOOLS_URL=https://github.com/rte-france/or-tools-rte/releases/download/$(cat ortools_tag)/ortools_cxx_ubuntu-20.04_static_sirius.zip" >> $GITHUB_ENV
- name: Install sonar-scanner and build-wrapper
uses: SonarSource/sonarcloud-github-c-cpp@v3

- name: ccache
uses: hendrikmuhs/ccache-action@v1.2
with:
key: sonarcloud-${{ env.SONAR_SCANNER_VERSION }}

- name: Install libraries
run: |
sudo apt-get update
sudo apt-get install uuid-dev libwxgtk3.0-gtk3-dev
sudo apt-get install libboost-test-dev
sudo apt-get install g++-10 gcc-10
- name: Download pre-compiled librairies
uses: ./.github/workflows/download-extract-precompiled-libraries-tgz
with:
os: ${{matrix.os}}
buildtype: Debug
ortools-url: ${{env.ORTOOLS_URL}}
ortools-dir: ${{env.ORTOOLS_DIR}}

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.12

- name: Install gcovr
run: sudo pip install gcovr==5.0 #5.1 generate issues with sonarcloud report parsing

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip3 install -r src/tests/examples/requirements.txt
- name: Read simtest version
run: |
echo 'SIMTEST_JSON<<EOF' >> $GITHUB_ENV
cat ./simtest.json >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Export simtest version
run: |
echo "SIMTEST=${{ fromJson(env.SIMTEST_JSON).version }}" >> $GITHUB_ENV
- name: Init submodule
run: |
git submodule update --init --remote src/tests/resources/Antares_Simulator_Tests
- name: Configure
run: |
cmake -B _build -S src \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_C_COMPILER=/usr/bin/gcc-10 \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER=/usr/bin/g++-10 \
-DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_TARGET_TRIPLET=x64-linux-release \
-DCODE_COVERAGE=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="../install;${{ env.ORTOOLS_DIR }}/install" \
-DBUILD_TESTING=ON \
-DMZ_CODE_COVERAGE=ON \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DPython3_EXECUTABLE='${{ steps.setup-python.outputs.python-path }}'
- name: Build
run: |
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} cmake --build _build --config Release -j$(nproc)
- name: Test and generate coverage
continue-on-error: true
run: |
cd $GITHUB_WORKSPACE/_build
ctest -C Release --output-on-failure -L "unit"
- name: Run short-tests
continue-on-error: true
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: short-tests
os: ${{ matrix.os }}

- name: Collect coverage into one XML report
run: |
gcovr --sonarqube --output coverage.xml
- name: Run sonar-scanner
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: sonar-scanner --define sonar.host.url="${{ env.SONAR_SERVER_URL }}" --define sonar.cfamily.compile-commands="${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json"

- name: Cache vcpkg binary dir
if: always()
id: save-cache-vcpkg-binary
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/vcpkg_cache
key: vcpkg-cache-ubuntu-${{ hashFiles('src/vcpkg.json', '.git/modules/vcpkg/HEAD') }}
Loading

0 comments on commit 6fe4d1e

Please sign in to comment.