Skip to content

Add delete in AreaList desctuctor to free memory #15761

Add delete in AreaList desctuctor to free memory

Add delete in AreaList desctuctor to free memory #15761

Workflow file for this run

name: SonarCloud
on:
pull_request:
push:
branches:
- develop
jobs:
sonarcloud:
name: SonarCloud
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[skip ci]')"
env:
SONAR_SERVER_URL: "https://sonarcloud.io"
os: ubuntu-22.04
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
#config in env to be accessible at each step
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPILERCHECK: content
CCACHE_SLOPPINESS: time_macros,include_file_mtime
PYTHON_VERSION: "3.12"
steps:
- uses: actions/checkout@v6
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@v5
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-22.04_static_sirius.zip" >> $GITHUB_ENV
- name: Install ccache
run: sudo apt-get install -y ccache uuid-dev
# Can't use ubuntu cache. Cache hit is only single digit %
- name: Restore ccache cache
id: cache
uses: actions/cache/restore@v5
with:
path: ${{ github.workspace }}/.ccache
key: sonar-${{ env.os }}-${{ github.event.pull_request.head.ref || github.ref_name }}
restore-keys: |
sonar-${{ env.os }}-
- name: Configure ccache
run: |
# Ensure directory exists and point ccache at it
mkdir -p ${{ env.CCACHE_DIR }}
# Increase size to reduce evictions; adjust to suit your CI quota
ccache --set-config=max_size=5G
ccache --set-config=compression=true
ccache --show-config || true
ccache -p
shell: bash
- name: Install Build Wrapper
uses: SonarSource/sonarqube-scan-action/install-build-wrapper@v7.0.0
- name: Download pre-compiled librairies
uses: ./.github/workflows/download-extract-precompiled-libraries-tgz
with:
os: ${{ env.os }}
buildtype: Debug
ortools-url: ${{env.ORTOOLS_URL}}
ortools-dir: ${{env.ORTOOLS_DIR}}
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
- 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
# Disk space on / is insufficient; remove unused SDKs and caches after
# all apt/pip installs are done so we don't break their cache lookups.
- name: Free root space (remove unused SDKs and caches)
run: |
sudo rm -rf /usr/share/dotnet || true
sudo rm -rf /usr/local/lib/android || true
sudo rm -rf /opt/ghc || true
sudo rm -rf /opt/hostedtoolcache/CodeQL || true
sudo apt-get clean -y || true
sudo rm -rf /var/lib/apt/lists/* /var/cache/apt/archives/* || true
python -m pip cache purge || true
rm -rf /home/runner/.cache/pip || true
sudo rm -rf /tmp/* /var/tmp/* || true
- 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 --depth 1 --remote src/tests/resources/Antares_Simulator_Tests_NR
- name: Configure
run: |
cmake -B _build -S src \
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
-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="${{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
if: ${{ !cancelled() }}
run: |
cd $GITHUB_WORKSPACE/_build
ctest -C Release --output-on-failure -L "unit|end-to-end"
- name: Run unfeasibility-related tests
if: ${{ !cancelled() }}
run: |
cd _build
ctest -C Release --output-on-failure -R "^unfeasible$"
- name: Run short-tests
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: short-tests
os: ${{ env.os }}
- name: Run tests on adequacy patch (CSR)
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: adequacy-patch-CSR
os: ${{ env.os }}
- name: Run tests introduced in 8.6.0
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: valid-v860
os: ${{ env.os }}
- name: Run tests introduced in 8.7.0
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: valid-v870
os: ${{ env.os }}
- name: Run tests introduced in 9.1.0
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: valid-v910
os: ${{ env.os }}
- name: Run tests introduced in 9.2.0
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: valid-v920
os: ${{ env.os }}
- name: Run named mps tests
if: ${{ !cancelled() }}
uses: ./.github/workflows/run-tests
with:
simtest-tag: ${{ env.SIMTEST }}
batch-name: valid-named-mps
os: ${{ env.os }}
variant: "named-mps"
- name: Run fast cucumber
if: ${{ !cancelled() }}
uses: ./.github/workflows/cucumber-tests
with:
tags: "fast"
- name: Run cucumber on hybrid studies
if: ${{ !cancelled() }}
uses: ./.github/workflows/cucumber-tests
with:
feature: "features/solver-features/hybrid_studies.feature"
- name: Collect coverage into one XML report
if: ${{ !cancelled() }}
run: |
gcovr --sonarqube --output coverage.xml
- name: Remove Antares_Simulator_Tests_NR
run: |
rm -rf src/tests/resources/Antares_Simulator_Tests_NR
- name: SonarQube Scan
if: ${{ !cancelled() }}
uses: SonarSource/sonarqube-scan-action@v7.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
with:
scannerVersion: 7.3.0.5189 #8.0.1.6346 hangs
args: >
--define sonar.host.url=${{ env.SONAR_SERVER_URL }} --define sonar.cfamily.compile-commands=${{ env.BUILD_WRAPPER_OUT_DIR }}/compile_commands.json
- name: Barrier
if: ${{ !success() }}
run: exit 1
- name: Cache vcpkg binary dir
if: always()
id: save-cache-vcpkg-binary
uses: actions/cache/save@v5
with:
path: ${{ github.workspace }}/vcpkg_cache
key: vcpkg-cache-ubuntu-${{ hashFiles('src/vcpkg.json', '.git/modules/vcpkg/HEAD') }}
- name: Display ccache statistics
if: always()
run: ccache -s
# Delete the old cache on hit to emulate a cache update. See
# https://github.com/actions/cache/issues/342.
- name: Delete old cache
continue-on-error: true
env:
GH_TOKEN: ${{ github.token }}
GH_DEBUG: api gh cache delete
if: ${{ !cancelled() && steps.cache.outputs.cache-hit }}
# Using `--repo` makes it so that this step doesn't require checking out the
# repo first.
run: gh cache delete --repo ${{ github.repository }} ${{ steps.cache.outputs.cache-primary-key }}
- name: Save ccache cache
if: ${{ !cancelled() }}
uses: AntaresSimulatorTeam/cache@main
with:
path: ${{ github.workspace }}/.ccache
key: ${{ steps.cache.outputs.cache-primary-key }}