Add delete in AreaList desctuctor to free memory #17382
Workflow file for this run
This file contains hidden or 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: Ubuntu CI (push and/or release) | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| - feature/* | |
| - features/* | |
| - fix/* | |
| - issue-* | |
| - release/* | |
| - doc/* | |
| - dependabot/** | |
| - tests/* | |
| schedule: | |
| - cron: '21 2 * * *' | |
| workflow_call: | |
| inputs: | |
| run-tests: | |
| required: true | |
| type: string | |
| target_branch: | |
| required: true | |
| type: string | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| IS_RELEASE: ${{ github.event_name == 'workflow_dispatch' }} | |
| RUN_SIMPLE_TESTS: ${{ github.event_name == 'push' || inputs.run-tests == 'true' }} | |
| RUN_EXTENDED_TESTS: ${{ github.event_name == 'schedule' || inputs.run-tests == 'true' }} | |
| REF: ${{ inputs.target_branch =='' && github.ref || inputs.target_branch}} | |
| VCPKG_ROOT: ${{ github.workspace }}/vcpkg | |
| triplet: x64-linux | |
| PYTHON_VERSION: "3.12" | |
| jobs: | |
| build: | |
| name: Build | |
| env: | |
| ORTOOLS_DIR: ${{ github.workspace }}/or-tools | |
| os: ubuntu-22.04 | |
| # Caching strategy of VCPKG dependencies | |
| VCPKG_BINARY_SOURCES: "clear;files,${{ github.workspace }}/vcpkg_cache,readwrite" | |
| runs-on: ubuntu-22.04 | |
| if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| ref: ${{ env.REF }} | |
| - 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: Install ccache | |
| run: sudo apt-get install -y ccache | |
| - name: Restore ccache cache | |
| id: cache | |
| uses: actions/cache/restore@v5 | |
| with: | |
| path: ${{ github.workspace }}/.ccache_ubuntu | |
| key: ${{ env.os }}-${{ github.ref_name }} | |
| restore-keys: | | |
| ${{ env.os }}- | |
| - name: Configure ccache | |
| run: | | |
| ccache --set-config=cache_dir=${{ github.workspace }}/.ccache_ubuntu | |
| ccache --set-config=max_size=500M | |
| ccache --set-config=compression=true | |
| ccache -p | |
| ccache -z | |
| - name: Install libraries | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install uuid-dev | |
| sudo apt-get install xsltproc | |
| - 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: Download pre-compiled librairies | |
| uses: ./.github/workflows/download-extract-precompiled-libraries-tgz | |
| with: | |
| os: ${{env.os}} | |
| ortools-url: ${{env.ORTOOLS_URL}} | |
| ortools-dir: ${{env.ORTOOLS_DIR}} | |
| - name: Set up Python | |
| id: setup-python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{env.PYTHON_VERSION}} | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip3 install -r src/tests/examples/requirements.txt | |
| - 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 \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_TESTING=ON \ | |
| -DBUILD_TOOLS=ON \ | |
| -DCMAKE_PREFIX_PATH=${{ env.ORTOOLS_DIR }}/install \ | |
| -DPython3_EXECUTABLE="${{ env.Python3_ROOT_DIR }}/bin/python" | |
| - name: Build | |
| run: | | |
| cmake --build _build -j$(nproc) | |
| - name: Creation of complete .tar.gz archive | |
| if: ${{ success() }} | |
| run: | | |
| cd _build | |
| cpack -G TGZ -D CPACK_INSTALLED_DIRECTORIES="${{ env.ORTOOLS_DIR }}/install/lib;bin" | |
| - name: Creation of solver only .tar.gz archive | |
| if: ${{ success() }} | |
| run: | | |
| cd _build | |
| cmake --install . --prefix install | |
| pushd . | |
| cd install/bin | |
| cp ${{ env.ORTOOLS_DIR }}/install/lib/*.so* . | |
| tar czf ../../antares-solver_ubuntu22.04.tar.gz antares-solver libsirius_solver.so *.so* | |
| popd | |
| rm -rf install | |
| - name: Both previous archives upload | |
| if: ${{ success() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: ubuntu-targz | |
| path: _build/*.tar.gz | |
| - name: Run API tests | |
| run: | | |
| cmake --install _build --prefix antares_install | |
| cd src/api_client_example | |
| cmake -B _build -S . \ | |
| -DCMAKE_C_COMPILER_LAUNCHER=ccache \ | |
| -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DBUILD_TESTING=ON \ | |
| -DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/vcpkg/scripts/buildsystems/vcpkg.cmake \ | |
| -DVCPKG_TARGET_TRIPLET=x64-linux-release \ | |
| -DCMAKE_PREFIX_PATH="${{github.workspace}}/_build/vcpkg_installed/x64-linux-release;${{github.workspace}}/install;${{ env.ORTOOLS_DIR }}/install;${{github.workspace}}/antares_install" | |
| cmake --build _build -j$(nproc) | |
| cd _build | |
| ctest -C Release --output-on-failure | |
| - 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 Antares_Simulator_Tests_NR | |
| run: | | |
| git submodule update --init --remote --recursive src/tests/resources/Antares_Simulator_Tests_NR | |
| - name: Run named mps tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !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: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/cucumber-tests | |
| with: | |
| tags: "fast" | |
| - name: Run cucumber on modeler | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/cucumber-tests | |
| with: | |
| feature: "features/modeler-features" | |
| - name: Run unit and end-to-end tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| run: | | |
| cd _build | |
| ctest -C Release --output-on-failure -L "unit|end-to-end" | |
| - name: Merge XML reports into single HTML | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| run: | | |
| cd _build/tests | |
| ${{github.workspace}}/src/tests/merge_all.sh ${{github.workspace}}/src/tests/format_xml_report.xsl | |
| - name: Rename report | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| run: | | |
| mkdir testing-report | |
| mv ${{ github.workspace }}/_build/tests/report.html testing-report/$PAGE | |
| env: | |
| PAGE: ${{ github.sha }}.html | |
| - name: Upload logs for failed tests | |
| if: ${{ failure() }} | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: test-log | |
| path: ${{ github.workspace }}/_build/Testing/Temporary/LastTest.log | |
| - name: Run tests about infinity on BCs RHS | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-v830 | |
| os: ${{ env.os }} | |
| - name: Run MILP with CBC | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-milp | |
| variant: "milp-cbc" | |
| os: ${{ env.os }} | |
| - name: Run tests on adequacy patch (CSR) | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !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: ${{ env.RUN_SIMPLE_TESTS == 'true' && !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: ${{ env.RUN_SIMPLE_TESTS == 'true' && !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: ${{ env.RUN_SIMPLE_TESTS == 'true' && !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: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-v920 | |
| os: ${{ env.os }} | |
| - name: Run tests introduced in 9.3.0 | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-v930 | |
| os: ${{ env.os }} | |
| - name: Run short-tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: short-tests | |
| os: ${{ env.os }} | |
| - name: Run cucumber on v9.2 tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/cucumber-tests | |
| with: | |
| feature: "features/solver-features/tests_for_v9.2.feature" | |
| - name: Run mps tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-mps | |
| os: ${{ env.os }} | |
| - name: Run unfeasibility-related tests | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| run: | | |
| cd _build | |
| ctest -C Release --output-on-failure -R "^unfeasible$" | |
| - name: Run parallel tests | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: valid-parallel | |
| os: ${{ env.os }} | |
| variant: "parallel" | |
| - name: Run medium-tests | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: medium-tests | |
| os: ${{ env.os }} | |
| - name: Run cucumber on medium-tests | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/cucumber-tests | |
| with: | |
| feature: "features/solver-features/medium_tests.feature" | |
| - name: Run long-tests-1 | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: long-tests-1 | |
| os: ${{ env.os }} | |
| - name: Run long-tests-2 | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: long-tests-2 | |
| os: ${{ env.os }} | |
| - name: Run long-tests-3 | |
| if: ${{ env.RUN_EXTENDED_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/run-tests | |
| with: | |
| simtest-tag: ${{ env.SIMTEST }} | |
| batch-name: long-tests-3 | |
| os: ${{ env.os }} | |
| - name: Run cucumber on hybrid studies | |
| if: ${{ env.RUN_SIMPLE_TESTS == 'true' && !cancelled() }} | |
| uses: ./.github/workflows/cucumber-tests | |
| with: | |
| feature: "features/solver-features/hybrid_studies.feature" | |
| - name: Barrier | |
| if: ${{ !success() }} | |
| run: exit 1 | |
| - name: Installer .deb creation | |
| run: | | |
| cd _build | |
| cpack -G DEB -D CPACK_INSTALLED_DIRECTORIES="${{ env.ORTOOLS_DIR }}/install/lib;bin" | |
| - name: Installer deb upload push | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: deb | |
| path: _build/*.deb | |
| - name: Publish assets | |
| if: ${{ env.IS_RELEASE == 'true' }} | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| tag: ${{ github.event.inputs.release_tag }} | |
| run: | | |
| gh release upload "$tag" _build/*.tar.gz _build/*.deb | |
| - name: Update continuous-delivery release | |
| if: github.ref == 'refs/heads/develop' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| mv _build/antares-*-Ubuntu-22.04.tar.gz _build/antares-cd-Ubuntu-22.04.tar.gz | |
| mv _build/antares-*-Ubuntu-22.04.deb _build/antares-cd-Ubuntu-22.04.deb | |
| gh release upload --clobber continuous-delivery _build/*.tar.gz _build/*.deb | |
| gh release edit continuous-delivery --title "continuous delivery (generated $(date +'%Y-%m-%d %H:%M'))" | |
| #update continuous delivery tag to point to the latest develop commit | |
| gh api repos/${{ github.repository }}/git/refs/tags/continuous-delivery -X PATCH -f sha=$(git rev-parse HEAD) | |
| - 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 | |
| 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: actions/cache/save@v5 | |
| with: | |
| path: ${{ github.workspace }}/.ccache_ubuntu | |
| key: ${{ steps.cache.outputs.cache-primary-key }} |