From 642fb9aae763633b584cbfb1170bcc4d064d8482 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 14:18:39 +0100 Subject: [PATCH 01/28] rework CI snapshot Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 7 +- .../scripts/check_integration_branch.sh | 17 ++ .../scripts/check_snapshot_branch.sh | 15 - .github/workflows/snapshot-ci.yml | 283 ++++++++++++------ 4 files changed, 207 insertions(+), 115 deletions(-) create mode 100755 .github/workflows/scripts/check_integration_branch.sh delete mode 100755 .github/workflows/scripts/check_snapshot_branch.sh diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index 7c1673ed94..2c25485eb5 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -2,15 +2,18 @@ MODULE_NAME=$1 COMMAND=$2 +CURRENT_OS=$3 +CURRENT_PYTHON=$4 +RESULT_FILE="job_result_$CURRENT_OS-$CURRENT_PYTHON.txt" echo "Building $MODULE_NAME..." $COMMAND BUILD_EXIT=$? if [ $BUILD_EXIT -ne 0 ]; then - echo "❌ $MODULE_NAME build FAILED" >> $BUILD_STATUS + printf '%s;%s;%s;failure\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" else - echo "✅ $MODULE_NAME build SUCCESS" >> $BUILD_STATUS + printf '%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" fi exit $BUILD_EXIT \ No newline at end of file diff --git a/.github/workflows/scripts/check_integration_branch.sh b/.github/workflows/scripts/check_integration_branch.sh new file mode 100755 index 0000000000..8234079b5d --- /dev/null +++ b/.github/workflows/scripts/check_integration_branch.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +repo=$1 +core_version=$2 + +# Add "-SNAPSHOT" to powsybl-core version if not already there +core_snapshot_version=$(echo "$core_version" | grep -q SNAPSHOT && echo "$core_version" || echo "$core_version-SNAPSHOT") + +# Find if an integration branch exists +INTEGRATION_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/integration/powsyblcore-$core_snapshot_version" | sed 's/.*refs\/heads\///') +if [ -n "$INTEGRATION_BRANCH" ]; then + echo "SNAPSHOT VERSION EXIST: $INTEGRATION_BRANCH" + echo "INTEGRATION_BRANCH=$INTEGRATION_BRANCH" >> "$GITHUB_ENV" +else + echo "No SNAPSHOT branch found" + echo "INTEGRATION_BRANCH=main" >> "$GITHUB_ENV" +fi \ No newline at end of file diff --git a/.github/workflows/scripts/check_snapshot_branch.sh b/.github/workflows/scripts/check_snapshot_branch.sh deleted file mode 100755 index 41c3712cc4..0000000000 --- a/.github/workflows/scripts/check_snapshot_branch.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -repo=$1 -core_version=$2 - -SNAPSHOT_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/$(echo $core_version | grep -q SNAPSHOT && echo "$core_version" || echo "$core_version-SNAPSHOT")" | sed 's/.*refs\/heads\///') -if [ -n "$SNAPSHOT_BRANCH" ]; then - echo "SNAPSHOT VERSION EXIST: $SNAPSHOT_BRANCH" - echo "SNAPSHOT_BRANCH=$SNAPSHOT_BRANCH" >> $GITHUB_ENV -else - echo "No SNAPSHOT branch found" - echo "SNAPSHOT_BRANCH=main" >> $GITHUB_ENV -fi - - diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 0b4f64dea6..82beb6da18 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -14,6 +14,13 @@ jobs: runs-on: ${{ matrix.config.os }} outputs: build_status_output: ${{ steps.build_status_step.outputs.build_status_output }} #Output job with build_status.txt content created in Read Build Status step + core-version: ${{ env.CORE_VERSION }} + afs-branch: ${{ env.INTEGRATION_BRANCH }} + olf-version: ${{ env.OLF_VERSION }} + diagram-version: ${{ env.DIAGRAM_VERSION }} + entsoe-version: ${{ env.ENTSOE_VERSION }} + openrao-version: ${{ env.OPENRAO_VERSION }} + dependencies-version: ${{ env.DEPENDENCIES_VERSION }} strategy: matrix: @@ -35,7 +42,7 @@ jobs: steps: - #SETUP PYTHON + # Setup Python - name: Set up Python ${{ matrix.python.version }} uses: actions/setup-python@v5 with: @@ -43,7 +50,7 @@ jobs: - name: Install Python dependencies run: python -m pip install --upgrade pip - #SETUP GRAALVM + # Setup GraalVM - name: Setup GraalVM uses: graalvm/setup-graalvm@v1 with: @@ -51,7 +58,7 @@ jobs: distribution: 'graalvm' github-token: ${{ secrets.GITHUB_TOKEN }} - #DEFINE SCRIPTS PATH + # Define scripts path - name: Set up script path run: | SCRIPTS_PATH="${GITHUB_WORKSPACE}/scripts/.github/workflows/scripts" @@ -60,151 +67,174 @@ jobs: fi echo "SCRIPTS_PATH=$SCRIPTS_PATH" >> $GITHUB_ENV - #BUILD CORE + # Build powsybl-core on main branch - name: Checkout core sources - uses: actions/checkout@v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-core ref: main path: powsybl-core - - name: Build CORE + + - name: Build powsybl-core run: mvn -batch-mode --no-transfer-progress clean install -DskipTests working-directory: ./powsybl-core - - name: get CORE_VERSION + + - name: Get powsybl-core version run: echo "CORE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-core - #CHECKOUT SCRIPT - #The script check_snapshot_branch.sh is located in the workflow folder of the pypowsybl repository - #It is necessary for checking out the integration branch if it exists (pypowsybl include) + # Checkout script + # The script check_integration_branch.sh is located in the workflow folder of the repository + # It is necessary for checking out the integration branch if it exists - name: Checkout script - uses: actions/checkout@v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: sparse-checkout: | .github sparse-checkout-cone-mode: false path: scripts - #BUILD OPENLOADFLOW - - name: Checking for openloadflow snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} - - name: Checkout openloadflow sources - uses: actions/checkout@v4 + # Build Open-Loadflow + - name: Checking for powsybl-open-loadflow snapshot branch + run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} + + - name: Checkout powsybl-open-loadflow sources + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-open-loadflow - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-open-loadflow - - name: Change core version + + - name: Change core version in pom.xml run: mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-open-loadflow - - name: Build LOADFLOW + + - name: Build powsybl-open-loadflow continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "LOADFLOW" "mvn -batch-mode --no-transfer-progress clean install" + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "LOADFLOW" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-open-loadflow - - name: Get LOADFLOW_VERSION - run: echo "LOADFLOW_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV + + - name: Get OLF_VERSION + run: echo "OLF_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-open-loadflow - #BUILD DIAGRAM + # Build powsybl-diagram - name: Checking for diagram snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} + run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} + - name: Checkout diagram sources - uses: actions/checkout@v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-diagram - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-diagram - - name: Change core version + + - name: Change core version in pom.xml run: mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-diagram - - name: Build DIAGRAM + + - name: Build powsybl-diagram continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DIAGRAM" "mvn -batch-mode --no-transfer-progress clean install" + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DIAGRAM" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-diagram + - name: Get DIAGRAM_VERSION version run: echo "DIAGRAM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-diagram - #BUILD ENTSOE - - name: Checking for entsoe snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} - - name: Checkout entsoe sources - uses: actions/checkout@v4 + # Build powsybl-entsoe + - name: Checking for powsybl-entsoe snapshot branch + run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} + + - name: Checkout powsybl-entsoe sources + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-entsoe - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-entsoe - - name: Change core/loadflow version + + - name: Change core/loadflow version in pom.xml run: | mvn versions:set-property -Dproperty=powsyblcore.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false - mvn versions:set-property -Dproperty=powsyblopenloadflow.version -DnewVersion=${{ env.LOADFLOW_VERSION}} -DgenerateBackupPoms=false + mvn versions:set-property -Dproperty=powsyblopenloadflow.version -DnewVersion=${{ env.OLF_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-entsoe - - name: Build ENTSOE + + - name: Build powsybl-entsoe continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "ENTSOE" "mvn -batch-mode --no-transfer-progress clean install" + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "ENTSOE" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-entsoe + - name: Get ENTSOE_VERSION run: echo "ENTSOE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-entsoe - #BUILD OPENRAO - - name: Checking for openrao snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} - - name: Checkout openrao sources - uses: actions/checkout@v4 + # Build powsybl-open-rao + - name: Checking for powsybl-open-rao snapshot branch + run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} + + - name: Checkout powsybl-open-rao sources + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-open-rao - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-openrao - - name: Change core/entsoe/loadflow version + + - name: Change core/entsoe/loadflow version in pom.xml run: | mvn versions:set-property -Dproperty=powsybl.core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false mvn versions:set-property -Dproperty=powsybl.entsoe.version -DnewVersion=${{ env.ENTSOE_VERSION}} -DgenerateBackupPoms=false - mvn versions:set-property -Dproperty=powsybl.openloadflow.version -DnewVersion=${{ env.LOADFLOW_VERSION}} -DgenerateBackupPoms=false + mvn versions:set-property -Dproperty=powsybl.openloadflow.version -DnewVersion=${{ env.OLF_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-openrao - - name: Build OPENRAO + + - name: Build powsybl-open-rao continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "OPENRAO" "mvn -batch-mode --no-transfer-progress clean install" + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "OPENRAO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-openrao + - name: Get OPENRAO_VERSION run: echo "OPENRAO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-openrao - #BUILD DYNAWO - - name: Checking for dynawo snapshot branch - run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} - - name: Checkout dynawo sources - uses: actions/checkout@v4 + # Build powsybl-dynawo + - name: Checking for powsybl-dynawo snapshot branch + run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} + + - name: Checkout powsybl-dynawo sources + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-dynawo - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-dynawo - - name: Change core version + + - name: Change core version in pom.xml in pom.xml run: mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-dynawo - - name: Build DYNAWO + + - name: Build powsybl-dynawo continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DYNAWO" "mvn -batch-mode --no-transfer-progress clean install" + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DYNAWO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-dynawo + - name: Get DYNAWO_VERSION run: echo "DYNAWO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-dynawo - #CHECKOUT_PYPOWSYBL_DEPENCIES + # Checkout powsybl-dependencies - name: Checkout powsybl-dependencies sources - uses: actions/checkout@v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/powsybl-dependencies ref: main path: powsybl-dependencies + - name: Get DEPENDENCIES_VERSION run: echo "DEPENDENCIES_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-dependencies - #UPDATE/INSTALL_PYPOWSYBL_DEPENCIES - - name: Update dependencies versions + # Update or install powsybl-dependencies + - name: Update powsybl-dependencies versions run: | - mvn versions:set-property -Dproperty=powsybl-open-loadflow.version -DnewVersion=$LOADFLOW_VERSION -DgenerateBackupPoms=false + mvn versions:set-property -Dproperty=powsybl-open-loadflow.version -DnewVersion=$OLF_VERSION -DgenerateBackupPoms=false mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=$CORE_VERSION -DgenerateBackupPoms=false mvn versions:set-property -Dproperty=powsybl-diagram.version -DnewVersion=$DIAGRAM_VERSION -DgenerateBackupPoms=false mvn versions:set-property -Dproperty=powsybl-dynawo.version -DnewVersion=$DYNAWO_VERSION -DgenerateBackupPoms=false @@ -217,73 +247,130 @@ jobs: run: mvn -batch-mode --no-transfer-progress clean install working-directory: ./powsybl-dependencies - #BUILD PYPOWSYBL - - name: Checking dor pypowsybl snapshot branch - run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/pypowsybl.git" ${{ env.CORE_VERSION }} + # Build pypowsybl + - name: Checking for pypowsybl snapshot branch + run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/pypowsybl.git" ${{ env.CORE_VERSION }} + - name: Checkout pypowsybl - uses: actions/checkout@v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 with: repository: powsybl/pypowsybl - ref: ${{ env.SNAPSHOT_BRANCH }} + ref: ${{ env.INTEGRATION_BRANCH }} path: pypowsybl submodules: true - - name: update java/pom.xml + + - name: Update java/pom.xml run: mvn versions:set-property -Dproperty=powsybl-dependencies.version -DnewVersion=$DEPENDENCIES_VERSION -DgenerateBackupPoms=false working-directory: ./pypowsybl/java + - name: Install requirement.txt run: pip3 install -r requirements.txt working-directory: ./pypowsybl + - name: Build wheel run: python3 setup.py bdist_wheel working-directory: ./pypowsybl + - name: Install wheel run: python -m pip install dist/*.whl --user working-directory: ./pypowsybl - - name: check pypowsybl versions + + - name: Check pypowsybl versions working-directory: ./pypowsybl/tests run: python3 basic_import_test.py + - name: Run tests working-directory: ./pypowsybl/tests run: pytest + - name: Upload wheel - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # 4.3.3 with: name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }} path: dist/*.whl - - name: Record Job Name - if: failure() + - name: Store job result + if: always() run: | - echo "Failed job : Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel" >> $BUILD_STATUS + echo "${{ matrix.config.name }};pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }};${{ job.status }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - - name: Read Build Status + - name: Upload job result if: always() - id: build_status_step - run: | - echo "=== BUILD STATUS REPORT ===" - cat $BUILD_STATUS - echo "==========================" - echo "build_status_output<> $GITHUB_OUTPUT - cat $BUILD_STATUS >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # 4.3.3 + with: + name: job-results_${{ matrix.config.name }}-${{ matrix.python.name }} + path: job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + +# - name: Record Job Name +# if: failure() +# run: | +# echo "Failed job : Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel" >> $BUILD_STATUS +# +# - name: Read Build Status +# if: always() +# id: build_status_step +# run: | +# echo "=== BUILD STATUS REPORT ===" +# cat $BUILD_STATUS +# echo "==========================" +# echo "build_status_output<> $GITHUB_OUTPUT +# cat $BUILD_STATUS >> $GITHUB_OUTPUT +# echo "EOF" >> $GITHUB_OUTPUT - #SLACK NOTIFICATION ON FAILURE + # Slack notification notify_slack: needs: build_pypowsybl runs-on: ubuntu-latest - if: failure() + if: always() steps: - - name: Send Slack Notification - uses: 8398a7/action-slack@v3 - with: - status: ${{ job.status }} - text: | - :x: *Failed workflow ${{ github.workflow }}* - *Failure details:* - ``` - ${{ needs.build_pypowsybl.outputs.build_status_output }} - ``` - See logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + - name: Download job results + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + + - name: Combine job results + run: | + for dir in job-results_*; do + cat "$dir"/* >> combined_job_results.txt + done + echo "===== Step Result =====" + cat combined_job_results.txt + echo "=======================" + + - name: Determine workflow status + id: workflow_status + run: | + if grep -q "failure" combined_job_results.txt; then + echo "icon=❌" >> $GITHUB_OUTPUT + echo "status=Failed" >> $GITHUB_OUTPUT + else + echo "icon=✅" >> $GITHUB_OUTPUT + echo "status=Successful" >> $GITHUB_OUTPUT + fi + + - name: Format job results + id: format_results + run: | + formatted="" + while IFS=';' read -r os python module status; do + icon=$([ "$status" == "success" ] && echo ":white_check_mark:" || echo ":x:") + formatted+="${icon} Build *${module}* on *${os}* - *${python}*\\n" + done < combined_job_results.txt + formatted="${formatted%\\n}" # Remove the last newline + echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT + echo "===== Formatted Result =====" + echo -e ${formatted} + echo "=======================" + +# - name: Send Slack Notification +# uses: 8398a7/action-slack@v3 +# with: +# status: ${{ job.status }} +# text: | +# :x: *Failed workflow ${{ github.workflow }}* +# *Failure details:* +# ``` +# ${{ needs.build_pypowsybl.outputs.build_status_output }} +# ``` +# See logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} +# env: +# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} From 3d5086784a0ed13f2f665c112a41cbb4e768acfe Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 16:56:58 +0100 Subject: [PATCH 02/28] add print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index 2c25485eb5..dc2e7a170f 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -15,5 +15,8 @@ if [ $BUILD_EXIT -ne 0 ]; then else printf '%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" fi +echo "=============================================" +cat "$RESULT_FILE" +echo "=============================================" exit $BUILD_EXIT \ No newline at end of file From deb2be3b6fc055f2f1609e7ef8c6ad2c64a7b56f Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 17:07:47 +0100 Subject: [PATCH 03/28] add print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 3 -- .github/workflows/snapshot-ci.yml | 55 +++++++++++++++-------- 2 files changed, 37 insertions(+), 21 deletions(-) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index dc2e7a170f..2c25485eb5 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -15,8 +15,5 @@ if [ $BUILD_EXIT -ne 0 ]; then else printf '%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" fi -echo "=============================================" -cat "$RESULT_FILE" -echo "=============================================" exit $BUILD_EXIT \ No newline at end of file diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 82beb6da18..b4b7e1199b 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -118,7 +118,13 @@ jobs: run: echo "OLF_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-open-loadflow - # Build powsybl-diagram + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + +# Build powsybl-diagram - name: Checking for diagram snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} @@ -142,6 +148,12 @@ jobs: run: echo "DIAGRAM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-diagram + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + # Build powsybl-entsoe - name: Checking for powsybl-entsoe snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} @@ -168,6 +180,12 @@ jobs: run: echo "ENTSOE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-entsoe + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + # Build powsybl-open-rao - name: Checking for powsybl-open-rao snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} @@ -195,6 +213,12 @@ jobs: run: echo "OPENRAO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-openrao + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + # Build powsybl-dynawo - name: Checking for powsybl-dynawo snapshot branch run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} @@ -219,6 +243,12 @@ jobs: run: echo "DYNAWO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-dynawo + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + # Checkout powsybl-dependencies - name: Checkout powsybl-dependencies sources uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 @@ -294,6 +324,12 @@ jobs: run: | echo "${{ matrix.config.name }};pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }};${{ job.status }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + - name: Upload job result if: always() uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # 4.3.3 @@ -301,23 +337,6 @@ jobs: name: job-results_${{ matrix.config.name }}-${{ matrix.python.name }} path: job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt -# - name: Record Job Name -# if: failure() -# run: | -# echo "Failed job : Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel" >> $BUILD_STATUS -# -# - name: Read Build Status -# if: always() -# id: build_status_step -# run: | -# echo "=== BUILD STATUS REPORT ===" -# cat $BUILD_STATUS -# echo "==========================" -# echo "build_status_output<> $GITHUB_OUTPUT -# cat $BUILD_STATUS >> $GITHUB_OUTPUT -# echo "EOF" >> $GITHUB_OUTPUT - - # Slack notification notify_slack: needs: build_pypowsybl From 29a03ff7d15acc8be5cf0f0e4f87aeef02187daf Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 17:18:26 +0100 Subject: [PATCH 04/28] add print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index 2c25485eb5..26ca1496cd 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -9,11 +9,10 @@ RESULT_FILE="job_result_$CURRENT_OS-$CURRENT_PYTHON.txt" echo "Building $MODULE_NAME..." $COMMAND BUILD_EXIT=$? - +echo "$RESULT_FILE" if [ $BUILD_EXIT -ne 0 ]; then printf '%s;%s;%s;failure\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" else printf '%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" fi - exit $BUILD_EXIT \ No newline at end of file From 47b4ffc6f6963d4d3e12514ec31857672868be05 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 17:27:09 +0100 Subject: [PATCH 05/28] print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 3 ++- .github/workflows/snapshot-ci.yml | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index 26ca1496cd..90f967fb1c 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -5,11 +5,12 @@ COMMAND=$2 CURRENT_OS=$3 CURRENT_PYTHON=$4 RESULT_FILE="job_result_$CURRENT_OS-$CURRENT_PYTHON.txt" +echo "$RESULT_FILE" +cat "$RESULT_FILE" echo "Building $MODULE_NAME..." $COMMAND BUILD_EXIT=$? -echo "$RESULT_FILE" if [ $BUILD_EXIT -ne 0 ]; then printf '%s;%s;%s;failure\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" else diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index b4b7e1199b..2222feaefa 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -118,11 +118,11 @@ jobs: run: echo "OLF_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-open-loadflow - - name: Print file - run: | - echo "=============================================" - cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - echo "=============================================" +# - name: Print file +# run: | +# echo "=============================================" +# cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt +# echo "=============================================" # Build powsybl-diagram - name: Checking for diagram snapshot branch @@ -148,11 +148,11 @@ jobs: run: echo "DIAGRAM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-diagram - - name: Print file - run: | - echo "=============================================" - cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - echo "=============================================" +# - name: Print file +# run: | +# echo "=============================================" +# cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt +# echo "=============================================" # Build powsybl-entsoe - name: Checking for powsybl-entsoe snapshot branch From 5aed4a34ee07e58a79cb83002edd287a49739747 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 28 Jan 2025 17:27:19 +0100 Subject: [PATCH 06/28] print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index 90f967fb1c..a8b2bff993 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -6,7 +6,6 @@ CURRENT_OS=$3 CURRENT_PYTHON=$4 RESULT_FILE="job_result_$CURRENT_OS-$CURRENT_PYTHON.txt" echo "$RESULT_FILE" -cat "$RESULT_FILE" echo "Building $MODULE_NAME..." $COMMAND From 4c83116efb04cfd12ace8a4296f9dbc926800aa3 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 09:14:04 +0100 Subject: [PATCH 07/28] print Signed-off-by: Nicolas Rol --- .github/workflows/scripts/build_module.sh | 6 +- .github/workflows/snapshot-ci.yml | 67 ++++++++++++++++------- 2 files changed, 48 insertions(+), 25 deletions(-) diff --git a/.github/workflows/scripts/build_module.sh b/.github/workflows/scripts/build_module.sh index a8b2bff993..0d712940bf 100755 --- a/.github/workflows/scripts/build_module.sh +++ b/.github/workflows/scripts/build_module.sh @@ -4,15 +4,13 @@ MODULE_NAME=$1 COMMAND=$2 CURRENT_OS=$3 CURRENT_PYTHON=$4 -RESULT_FILE="job_result_$CURRENT_OS-$CURRENT_PYTHON.txt" -echo "$RESULT_FILE" echo "Building $MODULE_NAME..." $COMMAND BUILD_EXIT=$? if [ $BUILD_EXIT -ne 0 ]; then - printf '%s;%s;%s;failure\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" + printf 'BUILD_RESULT=%s;%s;%s;failure\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$GITHUB_OUTPUT" else - printf '%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$RESULT_FILE" + printf 'BUILD_RESULT=%s;%s;%s;success\n' "$CURRENT_OS" "$CURRENT_PYTHON" "$MODULE_NAME" >> "$GITHUB_OUTPUT" fi exit $BUILD_EXIT \ No newline at end of file diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 2222feaefa..06fafd2e3a 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -114,16 +114,21 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/build_module.sh "LOADFLOW" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-open-loadflow + - name: Store job result + if: always() + run: | + echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + - name: Get OLF_VERSION run: echo "OLF_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-open-loadflow -# - name: Print file -# run: | -# echo "=============================================" -# cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt -# echo "=============================================" - # Build powsybl-diagram - name: Checking for diagram snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} @@ -144,16 +149,21 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DIAGRAM" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-diagram + - name: Store job result + if: always() + run: | + echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + + - name: Print file + run: | + echo "=============================================" + cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "=============================================" + - name: Get DIAGRAM_VERSION version run: echo "DIAGRAM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-diagram -# - name: Print file -# run: | -# echo "=============================================" -# cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt -# echo "=============================================" - # Build powsybl-entsoe - name: Checking for powsybl-entsoe snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} @@ -176,9 +186,10 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/build_module.sh "ENTSOE" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-entsoe - - name: Get ENTSOE_VERSION - run: echo "ENTSOE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV - working-directory: ./powsybl-entsoe + - name: Store job result + if: always() + run: | + echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -186,6 +197,10 @@ jobs: cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt echo "=============================================" + - name: Get ENTSOE_VERSION + run: echo "ENTSOE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV + working-directory: ./powsybl-entsoe + # Build powsybl-open-rao - name: Checking for powsybl-open-rao snapshot branch run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} @@ -209,9 +224,10 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/build_module.sh "OPENRAO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-openrao - - name: Get OPENRAO_VERSION - run: echo "OPENRAO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV - working-directory: ./powsybl-openrao + - name: Store job result + if: always() + run: | + echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -219,6 +235,10 @@ jobs: cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt echo "=============================================" + - name: Get OPENRAO_VERSION + run: echo "OPENRAO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV + working-directory: ./powsybl-openrao + # Build powsybl-dynawo - name: Checking for powsybl-dynawo snapshot branch run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} @@ -239,9 +259,10 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DYNAWO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-dynawo - - name: Get DYNAWO_VERSION - run: echo "DYNAWO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV - working-directory: ./powsybl-dynawo + - name: Store job result + if: always() + run: | + echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -249,6 +270,10 @@ jobs: cat job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt echo "=============================================" + - name: Get DYNAWO_VERSION + run: echo "DYNAWO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV + working-directory: ./powsybl-dynawo + # Checkout powsybl-dependencies - name: Checkout powsybl-dependencies sources uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 From f10aafea727ac2e7dc492abe5ec11edebc71ab6a Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 09:26:01 +0100 Subject: [PATCH 08/28] fix jobs name Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 06fafd2e3a..f330b80243 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -110,6 +110,7 @@ jobs: working-directory: ./powsybl-open-loadflow - name: Build powsybl-open-loadflow + id: build_olf continue-on-error: true run: ${{ env.SCRIPTS_PATH }}/build_module.sh "LOADFLOW" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-open-loadflow @@ -117,7 +118,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ steps.build_olf.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -145,6 +146,7 @@ jobs: working-directory: ./powsybl-diagram - name: Build powsybl-diagram + id: build_diagram continue-on-error: true run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DIAGRAM" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-diagram @@ -152,7 +154,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ steps.build_diagram.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -182,6 +184,7 @@ jobs: working-directory: ./powsybl-entsoe - name: Build powsybl-entsoe + id: build_entsoe continue-on-error: true run: ${{ env.SCRIPTS_PATH }}/build_module.sh "ENTSOE" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-entsoe @@ -189,7 +192,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ steps.build_entsoe.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -220,6 +223,7 @@ jobs: working-directory: ./powsybl-openrao - name: Build powsybl-open-rao + id: build_rao continue-on-error: true run: ${{ env.SCRIPTS_PATH }}/build_module.sh "OPENRAO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-openrao @@ -227,7 +231,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ steps.build_rao.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -255,6 +259,7 @@ jobs: working-directory: ./powsybl-dynawo - name: Build powsybl-dynawo + id: build_dynawo continue-on-error: true run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DYNAWO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-dynawo @@ -262,7 +267,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ steps.build.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ steps.build_dynawo.outputs.BUILD_RESULT }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | From 749336ad827829444100d2e78d9ac092a66434c8 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 11:12:18 +0100 Subject: [PATCH 09/28] format results Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 101 ++++++++++++++++++------------ 1 file changed, 60 insertions(+), 41 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index f330b80243..91b07011a9 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -352,7 +352,7 @@ jobs: - name: Store job result if: always() run: | - echo "${{ matrix.config.name }};pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }};${{ job.status }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt + echo "${{ matrix.config.name }};${{ matrix.python.name }};wheels;${{ job.status }}" >> job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt - name: Print file run: | @@ -369,46 +369,65 @@ jobs: # Slack notification notify_slack: - needs: build_pypowsybl - runs-on: ubuntu-latest - if: always() - steps: - - name: Download job results - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 - - - name: Combine job results - run: | - for dir in job-results_*; do - cat "$dir"/* >> combined_job_results.txt - done - echo "===== Step Result =====" - cat combined_job_results.txt - echo "=======================" - - - name: Determine workflow status - id: workflow_status - run: | - if grep -q "failure" combined_job_results.txt; then - echo "icon=❌" >> $GITHUB_OUTPUT - echo "status=Failed" >> $GITHUB_OUTPUT - else - echo "icon=✅" >> $GITHUB_OUTPUT - echo "status=Successful" >> $GITHUB_OUTPUT - fi - - - name: Format job results - id: format_results - run: | - formatted="" - while IFS=';' read -r os python module status; do - icon=$([ "$status" == "success" ] && echo ":white_check_mark:" || echo ":x:") - formatted+="${icon} Build *${module}* on *${os}* - *${python}*\\n" - done < combined_job_results.txt - formatted="${formatted%\\n}" # Remove the last newline - echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT - echo "===== Formatted Result =====" - echo -e ${formatted} - echo "=======================" + needs: build_pypowsybl + runs-on: ubuntu-latest + if: always() + steps: + - name: Download job results + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + + - name: Combine job results + run: | + for dir in job-results_*; do + cat "$dir"/* >> combined_job_results.txt + done + echo "===== Step Result =====" + cat combined_job_results.txt + echo "=======================" + + - name: Determine workflow status + id: workflow_status + run: | + if grep -q "failure" combined_job_results.txt; then + echo "icon=❌" >> $GITHUB_OUTPUT + echo "status=Failed" >> $GITHUB_OUTPUT + else + echo "icon=✅" >> $GITHUB_OUTPUT + echo "status=Successful" >> $GITHUB_OUTPUT + fi + + - name: Format job results + id: format_results + run: | + declare -A success_modules failure_modules seen_modules + module_order=() + + while IFS=';' read -r os python module status; do + if [[ -z "${seen_modules[$module]}" ]]; then + module_order+=("$module") + seen_modules["$module"]=1 + fi + + if [[ "$status" == "success" ]]; then + success_modules["$module"]+="$os+$python " + else + failure_modules["$module"]+="$os+$python " + fi + done < combined_job_results.txt + + formatted_results="" + for module in "${module_order[@]}"; do + if [[ -n "${failure_modules[$module]}" ]]; then + failures="${failure_modules[$module]}// $//" + formatted_results+=":x: Build *$module* on $failures"$'\n' + elif [[ -n "${success_modules[$module]}" ]]; then + formatted_results+=":white_check_mark: Build *$module*"$'\n' + fi + done + echo "$formatted_results" >> $GITHUB_OUTPUT + echo "===== Formatted Result =====" + echo -e ${formatted_results} + echo "=======================" # - name: Send Slack Notification # uses: 8398a7/action-slack@v3 From f621b51b281d12b90e1eea3997035bb883b9767c Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 12:00:23 +0100 Subject: [PATCH 10/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 91b07011a9..4223336582 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -112,7 +112,7 @@ jobs: - name: Build powsybl-open-loadflow id: build_olf continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "LOADFLOW" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "powsybl-open-loadflow" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-open-loadflow - name: Store job result @@ -148,7 +148,7 @@ jobs: - name: Build powsybl-diagram id: build_diagram continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DIAGRAM" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "powsybl-diagram" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-diagram - name: Store job result @@ -186,7 +186,7 @@ jobs: - name: Build powsybl-entsoe id: build_entsoe continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "ENTSOE" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "powsybl-entsoe" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-entsoe - name: Store job result @@ -225,7 +225,7 @@ jobs: - name: Build powsybl-open-rao id: build_rao continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "OPENRAO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "powsybl-open-rao" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-openrao - name: Store job result @@ -261,7 +261,7 @@ jobs: - name: Build powsybl-dynawo id: build_dynawo continue-on-error: true - run: ${{ env.SCRIPTS_PATH }}/build_module.sh "DYNAWO" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} + run: ${{ env.SCRIPTS_PATH }}/build_module.sh "powsybl-dynawo" "mvn -batch-mode --no-transfer-progress clean install" ${{ matrix.config.name }} ${{ matrix.python.name }} working-directory: ./powsybl-dynawo - name: Store job result @@ -415,18 +415,18 @@ jobs: fi done < combined_job_results.txt - formatted_results="" + formatted="" for module in "${module_order[@]}"; do if [[ -n "${failure_modules[$module]}" ]]; then - failures="${failure_modules[$module]}// $//" - formatted_results+=":x: Build *$module* on $failures"$'\n' + failures=$(echo "${failure_modules[$module]}" | sed 's/ $//') + formatted+=":x: Build *$module* on $failures"$'\\n' elif [[ -n "${success_modules[$module]}" ]]; then - formatted_results+=":white_check_mark: Build *$module*"$'\n' + formatted+=":white_check_mark: Build *$module*"$'\\n' fi done - echo "$formatted_results" >> $GITHUB_OUTPUT + echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT echo "===== Formatted Result =====" - echo -e ${formatted_results} + echo -e ${formatted} echo "=======================" # - name: Send Slack Notification From 1f005ddb67be070d99c905342009498e3f61b4f6 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 15:08:38 +0100 Subject: [PATCH 11/28] format Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 35 ++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 4223336582..37abb22767 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -401,12 +401,22 @@ jobs: run: | declare -A success_modules failure_modules seen_modules module_order=() + os_set=() + python_set=() while IFS=';' read -r os python module status; do if [[ -z "${seen_modules[$module]}" ]]; then module_order+=("$module") seen_modules["$module"]=1 fi + + if [[ ! " ${os_set[*]} " =~ " ${os} " ]]; then + os_set+=("$os") + fi + + if [[ ! " ${python_set[*]} " =~ " ${python} " ]]; then + python_set+=("$python") + fi if [[ "$status" == "success" ]]; then success_modules["$module"]+="$os+$python " @@ -419,7 +429,30 @@ jobs: for module in "${module_order[@]}"; do if [[ -n "${failure_modules[$module]}" ]]; then failures=$(echo "${failure_modules[$module]}" | sed 's/ $//') - formatted+=":x: Build *$module* on $failures"$'\\n' + failed_all_os=true + failed_all_python=true + for os in "${os_set[@]}"; do + if [[ ! "${failure_modules[$module]}" =~ $os ]]; then + failed_all_os=false + break + fi + done + + for python in "${python_set[@]}"; do + if [[ ! "${failure_modules[$module]}" =~ $python ]]; then + failed_all_python=false + break + fi + done + + # Construire le message en fonction des échecs complets ou partiels + if [[ "$module" == "wheels" && "$failed_all_os" == true && "$failed_all_python" == true ]]; then + formatted+=":x: Build *$module* on all OS and for all Python versions"$'\\n' + elif [[ "$failed_all_os" == true ]]; then + formatted+=":x: Build *$module* on all OS"$'\\n' + else + formatted+=":x: Build *$module* on $failures"$'\\n' + fi elif [[ -n "${success_modules[$module]}" ]]; then formatted+=":white_check_mark: Build *$module*"$'\\n' fi From 482f072087e34bb3f76addfb1bb676cdc9d09f1e Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 16:10:37 +0100 Subject: [PATCH 12/28] test notification Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 72 +++++++++++++++++++++++++------ 1 file changed, 59 insertions(+), 13 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 37abb22767..8dfa45812c 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -21,6 +21,7 @@ jobs: entsoe-version: ${{ env.ENTSOE_VERSION }} openrao-version: ${{ env.OPENRAO_VERSION }} dependencies-version: ${{ env.DEPENDENCIES_VERSION }} + pypowsybl-branch: ${{ env.INTEGRATION_BRANCH }} strategy: matrix: @@ -462,16 +463,61 @@ jobs: echo -e ${formatted} echo "=======================" -# - name: Send Slack Notification -# uses: 8398a7/action-slack@v3 -# with: -# status: ${{ job.status }} -# text: | -# :x: *Failed workflow ${{ github.workflow }}* -# *Failure details:* -# ``` -# ${{ needs.build_pypowsybl.outputs.build_status_output }} -# ``` -# See logs: https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }} -# env: -# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + - name: Prepare Slack payload + id: prepare_payload + run: | + if [ "${{ steps.workflow_status.outputs.status }}" == "Successful" ]; then + echo 'payload<> $GITHUB_OUTPUT + echo '{ + "attachments": [{ + "color": "#319f4b", + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ steps.workflow_status.outputs.icon }} *${{ steps.workflow_status.outputs.status }} workflow: Snapshot-CI on *\n\nBranch built: ${{ needs.build_pypowsybl.outputs.pypowsybl-branch }}\nPowSyBl-Core version used: ${{ needs.build_pypowsybl.outputs.core-version }}\n\nSee logs on " + } + } + ] + }] + }' >> $GITHUB_OUTPUT + echo 'EOF' >> $GITHUB_OUTPUT + else + echo 'payload<> $GITHUB_OUTPUT + echo '{ + "attachments": [{ + "color": "#f64538", + "blocks": [ + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ steps.workflow_status.outputs.icon }} *${{ steps.workflow_status.outputs.status }} workflow: Snapshot-CI on *\n\nBranch built: ${{ needs.build_pypowsybl.outputs.pypowsybl-branch }}\nPowSyBl-Core version used: ${{ needs.build_pypowsybl.outputs.core-version }}" + } + }, + { + "type": "divider" + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "*Workflow details:*\n\n${{ steps.format_results.outputs.formatted_results }}\n\n@channel - See logs on " + } + } + ] + }] + }' >> $GITHUB_OUTPUT + echo 'EOF' >> $GITHUB_OUTPUT + fi + + - name: Send Slack Notification + uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 + if: ${{ steps.workflow_status.outputs.status != 'Successful' || github.event_name == 'workflow_dispatch' }} + with: + author_name: 'pypowsybl on GitHub' + status: custom + custom_payload: ${{ steps.prepare_payload.outputs.payload }} + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_POWSYBL_WEBHOOK_URL }} From 82be5be5f41ea59bb3dc176c5e102123c93d7eaf Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 16:10:55 +0100 Subject: [PATCH 13/28] remove comment Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 8dfa45812c..fdb9069732 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -446,7 +446,6 @@ jobs: fi done - # Construire le message en fonction des échecs complets ou partiels if [[ "$module" == "wheels" && "$failed_all_os" == true && "$failed_all_python" == true ]]; then formatted+=":x: Build *$module* on all OS and for all Python versions"$'\\n' elif [[ "$failed_all_os" == true ]]; then From 68ff78da5a59556c56b9ca46487f6162f4e4cc8f Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 16:12:41 +0100 Subject: [PATCH 14/28] remove unused variables Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index fdb9069732..dc2b70a98c 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -13,9 +13,7 @@ jobs: name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel runs-on: ${{ matrix.config.os }} outputs: - build_status_output: ${{ steps.build_status_step.outputs.build_status_output }} #Output job with build_status.txt content created in Read Build Status step core-version: ${{ env.CORE_VERSION }} - afs-branch: ${{ env.INTEGRATION_BRANCH }} olf-version: ${{ env.OLF_VERSION }} diagram-version: ${{ env.DIAGRAM_VERSION }} entsoe-version: ${{ env.ENTSOE_VERSION }} From ccafd63bdbb25566a29c54192e42e5cbf10f6f0d Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 16:45:56 +0100 Subject: [PATCH 15/28] test with shorter message Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index dc2b70a98c..4309835a4d 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -490,7 +490,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "${{ steps.workflow_status.outputs.icon }} *${{ steps.workflow_status.outputs.status }} workflow: Snapshot-CI on *\n\nBranch built: ${{ needs.build_pypowsybl.outputs.pypowsybl-branch }}\nPowSyBl-Core version used: ${{ needs.build_pypowsybl.outputs.core-version }}" + "text": "${{ steps.workflow_status.outputs.icon }} *${{ steps.workflow_status.outputs.status }} workflow: Snapshot-CI on * (branch built: ${{ needs.build_pypowsybl.outputs.pypowsybl-branch }})" } }, { @@ -500,7 +500,7 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "*Workflow details:*\n\n${{ steps.format_results.outputs.formatted_results }}\n\n@channel - See logs on " + "text": "Workflow details:\n\n${{ steps.format_results.outputs.formatted_results }}\n\n@channel - See logs on " } } ] From c756b73a17542e80ef1cac937dc8c2911db54932 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 29 Jan 2025 17:26:59 +0100 Subject: [PATCH 16/28] test with divided message Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 4309835a4d..13a1bfaf69 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -500,7 +500,21 @@ jobs: "type": "section", "text": { "type": "mrkdwn", - "text": "Workflow details:\n\n${{ steps.format_results.outputs.formatted_results }}\n\n@channel - See logs on " + "text": "Workflow details:" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "${{ steps.format_results.outputs.formatted_results }}" + } + }, + { + "type": "section", + "text": { + "type": "mrkdwn", + "text": "@channel - See logs on " } } ] From 98b01345fd93a1349f9353f21b7d0e8cafcebda2 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Thu, 30 Jan 2025 09:28:21 +0100 Subject: [PATCH 17/28] test with reduced message Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 13a1bfaf69..1b0352f7d6 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -425,6 +425,8 @@ jobs: done < combined_job_results.txt formatted="" + all_success_modules=() + for module in "${module_order[@]}"; do if [[ -n "${failure_modules[$module]}" ]]; then failures=$(echo "${failure_modules[$module]}" | sed 's/ $//') @@ -452,9 +454,15 @@ jobs: formatted+=":x: Build *$module* on $failures"$'\\n' fi elif [[ -n "${success_modules[$module]}" ]]; then - formatted+=":white_check_mark: Build *$module*"$'\\n' + all_success_modules+=("$module") fi done + + if [ ${#all_success_modules[@]} -gt 0 ]; then + success_list=$(IFS=', '; echo "${all_success_modules[*]}") + formatted=":white_check_mark: Build *$success_list*"$'\n'"$formatted" + fi + echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT echo "===== Formatted Result =====" echo -e ${formatted} From f89a8d38d681114b829e1782e5920cf914b77db5 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Thu, 30 Jan 2025 10:47:58 +0100 Subject: [PATCH 18/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 1b0352f7d6..ea4c700ae2 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -460,7 +460,7 @@ jobs: if [ ${#all_success_modules[@]} -gt 0 ]; then success_list=$(IFS=', '; echo "${all_success_modules[*]}") - formatted=":white_check_mark: Build *$success_list*"$'\n'"$formatted" + formatted=":white_check_mark: Build *$success_list*"$'\\n'"$formatted" fi echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT From 847b3a1df254c351e85c9a2e38b6b6a2390ab58e Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Thu, 30 Jan 2025 13:27:21 +0100 Subject: [PATCH 19/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index ea4c700ae2..ffa49f25a0 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -459,10 +459,12 @@ jobs: done if [ ${#all_success_modules[@]} -gt 0 ]; then - success_list=$(IFS=', '; echo "${all_success_modules[*]}") + success_list=$(IFS=', '; echo "${all_success_modules[*]}") formatted=":white_check_mark: Build *$success_list*"$'\\n'"$formatted" fi + formatted=$(echo -n "$formatted" | sed '$ s/\n$//') + echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT echo "===== Formatted Result =====" echo -e ${formatted} From d595990bf8c6b69a18cb2faec599c83dff159af0 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Thu, 30 Jan 2025 14:45:52 +0100 Subject: [PATCH 20/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index ffa49f25a0..2b5579bcdc 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -459,8 +459,8 @@ jobs: done if [ ${#all_success_modules[@]} -gt 0 ]; then - success_list=$(IFS=', '; echo "${all_success_modules[*]}") - formatted=":white_check_mark: Build *$success_list*"$'\\n'"$formatted" + success_list=$(IFS=','; echo " ${all_success_modules[*]}") + formatted=":white_check_mark: Build*$success_list*"$'\\n'"$formatted" fi formatted=$(echo -n "$formatted" | sed '$ s/\n$//') From 897efc8924959d49b996af1836b1c12b20af2e72 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Thu, 30 Jan 2025 15:31:19 +0100 Subject: [PATCH 21/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 2b5579bcdc..7d37998e60 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -459,8 +459,15 @@ jobs: done if [ ${#all_success_modules[@]} -gt 0 ]; then - success_list=$(IFS=','; echo " ${all_success_modules[*]}") - formatted=":white_check_mark: Build*$success_list*"$'\\n'"$formatted" + success_list="" + for module in "${all_success_modules[@]}"; do + if [ -z "$success_list" ]; then + success_list="$module" + else + success_list="$success_list, $module" + fi + done + formatted=":white_check_mark: Build *$success_list*"$'\\n'"$formatted" fi formatted=$(echo -n "$formatted" | sed '$ s/\n$//') From 4e948163a08bb1c6246cc8065a873e881920e3c0 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Fri, 31 Jan 2025 08:36:40 +0100 Subject: [PATCH 22/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 7d37998e60..a9dba3f991 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -404,6 +404,11 @@ jobs: python_set=() while IFS=';' read -r os python module status; do + # Ignore empty or bad formated lines + if [[ -z "$os" || -z "$python" || -z "$module" || -z "$status" ]]; then + continue + fi + if [[ -z "${seen_modules[$module]}" ]]; then module_order+=("$module") seen_modules["$module"]=1 From 2e09d148884bb02c0fa816ed93269cd41b7a8a2b Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Fri, 31 Jan 2025 08:51:44 +0100 Subject: [PATCH 23/28] add comments Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index a9dba3f991..421372b7ad 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -409,19 +409,21 @@ jobs: continue fi + # List the modules seen (to keep the order) if [[ -z "${seen_modules[$module]}" ]]; then module_order+=("$module") seen_modules["$module"]=1 fi - + + # List the OS and Python versions if [[ ! " ${os_set[*]} " =~ " ${os} " ]]; then os_set+=("$os") fi - if [[ ! " ${python_set[*]} " =~ " ${python} " ]]; then python_set+=("$python") fi + # List the build status if [[ "$status" == "success" ]]; then success_modules["$module"]+="$os+$python " else @@ -429,9 +431,9 @@ jobs: fi done < combined_job_results.txt + # Format the notification message formatted="" all_success_modules=() - for module in "${module_order[@]}"; do if [[ -n "${failure_modules[$module]}" ]]; then failures=$(echo "${failure_modules[$module]}" | sed 's/ $//') @@ -478,9 +480,6 @@ jobs: formatted=$(echo -n "$formatted" | sed '$ s/\n$//') echo "formatted_results=${formatted}" >> $GITHUB_OUTPUT - echo "===== Formatted Result =====" - echo -e ${formatted} - echo "=======================" - name: Prepare Slack payload id: prepare_payload From f360017e47c3b7c2879d302a1fbf21b244d35e6d Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 5 Feb 2025 09:03:10 +0100 Subject: [PATCH 24/28] fix step name Co-authored-by: Olivier Perrin Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 421372b7ad..d3ef925dc5 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -253,7 +253,7 @@ jobs: ref: ${{ env.INTEGRATION_BRANCH }} path: powsybl-dynawo - - name: Change core version in pom.xml in pom.xml + - name: Change core version in pom.xml run: mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-dynawo From e76d3aa6abe205da4e19fe74bd3e84965e60ee90 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 5 Feb 2025 09:07:33 +0100 Subject: [PATCH 25/28] fix actions versions Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index d3ef925dc5..373bafe86b 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -68,7 +68,7 @@ jobs: # Build powsybl-core on main branch - name: Checkout core sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-core ref: main @@ -86,7 +86,7 @@ jobs: # The script check_integration_branch.sh is located in the workflow folder of the repository # It is necessary for checking out the integration branch if it exists - name: Checkout script - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: sparse-checkout: | .github @@ -98,7 +98,7 @@ jobs: run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-open-loadflow sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-open-loadflow ref: ${{ env.INTEGRATION_BRANCH }} @@ -134,7 +134,7 @@ jobs: run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} - name: Checkout diagram sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-diagram ref: ${{ env.INTEGRATION_BRANCH }} @@ -170,7 +170,7 @@ jobs: run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-entsoe sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-entsoe ref: ${{ env.INTEGRATION_BRANCH }} @@ -208,7 +208,7 @@ jobs: run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-open-rao sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-open-rao ref: ${{ env.INTEGRATION_BRANCH }} @@ -247,7 +247,7 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-dynawo sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-dynawo ref: ${{ env.INTEGRATION_BRANCH }} @@ -280,7 +280,7 @@ jobs: # Checkout powsybl-dependencies - name: Checkout powsybl-dependencies sources - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-dependencies ref: main @@ -311,7 +311,7 @@ jobs: run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/pypowsybl.git" ${{ env.CORE_VERSION }} - name: Checkout pypowsybl - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/pypowsybl ref: ${{ env.INTEGRATION_BRANCH }} @@ -343,7 +343,7 @@ jobs: run: pytest - name: Upload wheel - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # 4.3.3 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # 4.6.0 with: name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }} path: dist/*.whl @@ -361,7 +361,7 @@ jobs: - name: Upload job result if: always() - uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # 4.3.3 + uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # 4.6.0 with: name: job-results_${{ matrix.config.name }}-${{ matrix.python.name }} path: job_result_${{ matrix.config.name }}-${{ matrix.python.name }}.txt From 9b72fe920d751ccf55ed2eaa23c344c3e1bfea41 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Tue, 11 Feb 2025 09:20:02 +0100 Subject: [PATCH 26/28] fix wheel directory Signed-off-by: Nicolas Rol --- .github/workflows/snapshot-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 373bafe86b..7ef68a245b 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -346,7 +346,7 @@ jobs: uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # 4.6.0 with: name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }} - path: dist/*.whl + path: ./pypowsybl/dist/*.whl - name: Store job result if: always() From 086025fdcf44a8eeb9c1e79aa2a0a90386e6f3f6 Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 26 Feb 2025 09:09:42 +0100 Subject: [PATCH 27/28] change references from integration to snapshot Signed-off-by: Nicolas Rol --- .../scripts/check_integration_branch.sh | 17 ------ .../scripts/check_snapshot_branch.sh | 17 ++++++ .github/workflows/snapshot-ci.yml | 55 +++++++++---------- 3 files changed, 43 insertions(+), 46 deletions(-) delete mode 100755 .github/workflows/scripts/check_integration_branch.sh create mode 100755 .github/workflows/scripts/check_snapshot_branch.sh diff --git a/.github/workflows/scripts/check_integration_branch.sh b/.github/workflows/scripts/check_integration_branch.sh deleted file mode 100755 index 8234079b5d..0000000000 --- a/.github/workflows/scripts/check_integration_branch.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -repo=$1 -core_version=$2 - -# Add "-SNAPSHOT" to powsybl-core version if not already there -core_snapshot_version=$(echo "$core_version" | grep -q SNAPSHOT && echo "$core_version" || echo "$core_version-SNAPSHOT") - -# Find if an integration branch exists -INTEGRATION_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/integration/powsyblcore-$core_snapshot_version" | sed 's/.*refs\/heads\///') -if [ -n "$INTEGRATION_BRANCH" ]; then - echo "SNAPSHOT VERSION EXIST: $INTEGRATION_BRANCH" - echo "INTEGRATION_BRANCH=$INTEGRATION_BRANCH" >> "$GITHUB_ENV" -else - echo "No SNAPSHOT branch found" - echo "INTEGRATION_BRANCH=main" >> "$GITHUB_ENV" -fi \ No newline at end of file diff --git a/.github/workflows/scripts/check_snapshot_branch.sh b/.github/workflows/scripts/check_snapshot_branch.sh new file mode 100755 index 0000000000..c8c142d0aa --- /dev/null +++ b/.github/workflows/scripts/check_snapshot_branch.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +repo=$1 +core_version=$2 + +# Add "-SNAPSHOT" to powsybl-core version if not already there +core_snapshot_version=$(echo "$core_version" | grep -q SNAPSHOT && echo "$core_version" || echo "$core_version-SNAPSHOT") + +# Find if an CI snapshot branch exists +CI_SNAPSHOT_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/ci/core-$core_snapshot_version" | sed 's/.*refs\/heads\///') +if [ -n "$CI_SNAPSHOT_BRANCH" ]; then + echo "SNAPSHOT VERSION EXIST: $CI_SNAPSHOT_BRANCH" + echo "CI_SNAPSHOT_BRANCH=$CI_SNAPSHOT_BRANCH" >> "$GITHUB_ENV" +else + echo "No SNAPSHOT branch found" + echo "CI_SNAPSHOT_BRANCH=main" >> "$GITHUB_ENV" +fi \ No newline at end of file diff --git a/.github/workflows/snapshot-ci.yml b/.github/workflows/snapshot-ci.yml index 7ef68a245b..445e95e0a3 100644 --- a/.github/workflows/snapshot-ci.yml +++ b/.github/workflows/snapshot-ci.yml @@ -5,9 +5,6 @@ on: schedule: - cron: '0 3 * * *' -env: - BUILD_STATUS: ${{ github.workspace }}/build_status.txt - jobs: build_pypowsybl: name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel @@ -19,15 +16,15 @@ jobs: entsoe-version: ${{ env.ENTSOE_VERSION }} openrao-version: ${{ env.OPENRAO_VERSION }} dependencies-version: ${{ env.DEPENDENCIES_VERSION }} - pypowsybl-branch: ${{ env.INTEGRATION_BRANCH }} + pypowsybl-branch: ${{ env.SNAPSHOT_BRANCH }} strategy: matrix: config: - - { name: ubuntu, os: ubuntu-latest} + - { name: ubuntu, os: ubuntu-latest } - { name: darwin, os: macos-13, macosx_deployment_target: "10.16", bdist_wheel_args: "--plat-name macosx-11.0-x86_64" } - - { name: darwin-arm64, os: macos-14, macosx_deployment_target: "11", bdist_wheel_args: "--plat-name macosx-11.0-arm64"} - - { name: windows, os: windows-2022} + - { name: darwin-arm64, os: macos-14, macosx_deployment_target: "11", bdist_wheel_args: "--plat-name macosx-11.0-arm64" } + - { name: windows, os: windows-2022 } python: - { name: cp38, version: '3.8' } - { name: cp39, version: '3.9' } @@ -83,7 +80,7 @@ jobs: working-directory: ./powsybl-core # Checkout script - # The script check_integration_branch.sh is located in the workflow folder of the repository + # The script check_snapshot_branch.sh is located in the workflow folder of the repository # It is necessary for checking out the integration branch if it exists - name: Checkout script uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -95,19 +92,19 @@ jobs: # Build Open-Loadflow - name: Checking for powsybl-open-loadflow snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} - + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} + - name: Checkout powsybl-open-loadflow sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-open-loadflow - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: powsybl-open-loadflow - + - name: Change core version in pom.xml run: mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false working-directory: ./powsybl-open-loadflow - + - name: Build powsybl-open-loadflow id: build_olf continue-on-error: true @@ -129,15 +126,15 @@ jobs: run: echo "OLF_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV working-directory: ./powsybl-open-loadflow -# Build powsybl-diagram + # Build powsybl-diagram - name: Checking for diagram snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-diagram.git" ${{ env.CORE_VERSION }} - name: Checkout diagram sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-diagram - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: powsybl-diagram - name: Change core version in pom.xml @@ -167,13 +164,13 @@ jobs: # Build powsybl-entsoe - name: Checking for powsybl-entsoe snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-entsoe.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-entsoe sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-entsoe - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: powsybl-entsoe - name: Change core/loadflow version in pom.xml @@ -205,13 +202,13 @@ jobs: # Build powsybl-open-rao - name: Checking for powsybl-open-rao snapshot branch - run : ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-open-rao.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-open-rao sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-open-rao - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: powsybl-openrao - name: Change core/entsoe/loadflow version in pom.xml @@ -244,13 +241,13 @@ jobs: # Build powsybl-dynawo - name: Checking for powsybl-dynawo snapshot branch - run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-dynawo.git" ${{ env.CORE_VERSION }} - name: Checkout powsybl-dynawo sources uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/powsybl-dynawo - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: powsybl-dynawo - name: Change core version in pom.xml @@ -308,13 +305,13 @@ jobs: # Build pypowsybl - name: Checking for pypowsybl snapshot branch - run: ${{ env.SCRIPTS_PATH }}/check_integration_branch.sh "https://github.com/powsybl/pypowsybl.git" ${{ env.CORE_VERSION }} + run: ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/pypowsybl.git" ${{ env.CORE_VERSION }} - name: Checkout pypowsybl uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: repository: powsybl/pypowsybl - ref: ${{ env.INTEGRATION_BRANCH }} + ref: ${{ env.SNAPSHOT_BRANCH }} path: pypowsybl submodules: true @@ -414,7 +411,7 @@ jobs: module_order+=("$module") seen_modules["$module"]=1 fi - + # List the OS and Python versions if [[ ! " ${os_set[*]} " =~ " ${os} " ]]; then os_set+=("$os") @@ -422,7 +419,7 @@ jobs: if [[ ! " ${python_set[*]} " =~ " ${python} " ]]; then python_set+=("$python") fi - + # List the build status if [[ "$status" == "success" ]]; then success_modules["$module"]+="$os+$python " @@ -445,14 +442,14 @@ jobs: break fi done - + for python in "${python_set[@]}"; do if [[ ! "${failure_modules[$module]}" =~ $python ]]; then failed_all_python=false break fi done - + if [[ "$module" == "wheels" && "$failed_all_os" == true && "$failed_all_python" == true ]]; then formatted+=":x: Build *$module* on all OS and for all Python versions"$'\\n' elif [[ "$failed_all_os" == true ]]; then @@ -464,7 +461,7 @@ jobs: all_success_modules+=("$module") fi done - + if [ ${#all_success_modules[@]} -gt 0 ]; then success_list="" for module in "${all_success_modules[@]}"; do From 0d8ecd55c333bbdacaf3e6a3e7d6f21ed204008e Mon Sep 17 00:00:00 2001 From: Nicolas Rol Date: Wed, 26 Feb 2025 09:44:49 +0100 Subject: [PATCH 28/28] fix Signed-off-by: Nicolas Rol --- .github/workflows/scripts/check_snapshot_branch.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/scripts/check_snapshot_branch.sh b/.github/workflows/scripts/check_snapshot_branch.sh index c8c142d0aa..3a914670a2 100755 --- a/.github/workflows/scripts/check_snapshot_branch.sh +++ b/.github/workflows/scripts/check_snapshot_branch.sh @@ -7,11 +7,11 @@ core_version=$2 core_snapshot_version=$(echo "$core_version" | grep -q SNAPSHOT && echo "$core_version" || echo "$core_version-SNAPSHOT") # Find if an CI snapshot branch exists -CI_SNAPSHOT_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/ci/core-$core_snapshot_version" | sed 's/.*refs\/heads\///') -if [ -n "$CI_SNAPSHOT_BRANCH" ]; then - echo "SNAPSHOT VERSION EXIST: $CI_SNAPSHOT_BRANCH" - echo "CI_SNAPSHOT_BRANCH=$CI_SNAPSHOT_BRANCH" >> "$GITHUB_ENV" +SNAPSHOT_BRANCH=$(git ls-remote --heads "$repo" | grep -E "refs/heads/ci/core-$core_snapshot_version" | sed 's/.*refs\/heads\///') +if [ -n "$SNAPSHOT_BRANCH" ]; then + echo "SNAPSHOT VERSION EXIST: $SNAPSHOT_BRANCH" + echo "SNAPSHOT_BRANCH=$SNAPSHOT_BRANCH" >> "$GITHUB_ENV" else echo "No SNAPSHOT branch found" - echo "CI_SNAPSHOT_BRANCH=main" >> "$GITHUB_ENV" + echo "SNAPSHOT_BRANCH=main" >> "$GITHUB_ENV" fi \ No newline at end of file