snapshot-ci #25
Workflow file for this run
This file contains 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: Snapshot CI | |
env: | |
CORE_VERSION: '' | |
LOADFLOW_VERSION: '' | |
DIAGRAM_VERSION: '' | |
ENTSOE_VERSION: '' | |
OPENRAO_VERSION: '' | |
DYNAWO_VERSION: '' | |
DEPENDENCIES_VERSION: '' | |
on: | |
workflow_dispatch: | |
push: | |
schedule: | |
- cron: '0 3 * * *' | |
jobs: | |
buil_pypowsybl: | |
name: Build ${{ matrix.config.name }} ${{ matrix.python.name }} wheel | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
matrix: | |
config: | |
- { name: ubuntu, os: ubuntu-latest, sed_inplace: "-i" } | |
python: | |
- { name: cp38, version: '3.8' } | |
steps: | |
# 1. Checkout du dépôt principal | |
- name: Checkout main repository | |
uses: actions/checkout@v4 | |
# 2. Vérifier que les scripts sont présents (Étape de débogage) | |
- name: List scripts directory | |
run: ls -la .github/workflows/ | |
shell: bash | |
# 3. Donner les permissions d'exécution aux scripts | |
- name: Make scripts executable | |
run: chmod +x .github/workflows/*.sh | |
shell: bash | |
#SETUP JDK | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
#SETUP PYTHON | |
- name: Set up Python ${{ matrix.python.version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python.version }} | |
- name: Install Python dependencies | |
run: python -m pip install --upgrade pip | |
#SETUP GRAALVM | |
- name: Setup GraalVM | |
uses: graalvm/setup-graalvm@v1.1.5 | |
with: | |
java-version: '17' | |
distribution: 'graalvm' | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
#BUILD CORE | |
- name: Checkout core-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-core | |
ref: main | |
- name: Build with Maven | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get core version | |
run: echo "CORE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#BUILD LOADFLOW | |
- name: Check for SNAPSHOT branch in Loadflow | |
run: bash "${{ github.workspace }}/.github/workflows/check_snapshot_branch.sh" "https://github.com/powsybl/powsybl-open-loadflow.git" "$CORE_VERSION" | |
shell: bash | |
- name: Checkout loadflow-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-open-loadflow | |
ref: ${{ env.SNAPSHOT_BRANCH }} | |
- name: Change core version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsybl-core.version>.*</powsybl-core.version>|<powsybl-core.version>'"$CORE_VERSION"'</powsybl-core.version>|' pom.xml | |
shell: bash | |
- name: Build with Maven | |
run: | | |
mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get loadflow version | |
run: echo "LOADFLOW_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#BUILD DIAGRAM | |
- name: Check for SNAPSHOT branch | |
run: bash "${{ github.workspace }}/.github/workflows/check_snapshot_branch.sh" "https://github.com/powsybl/powsybl-diagram.git" "$CORE_VERSION" | |
shell: bash | |
- name: Checkout diagram-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-diagram | |
ref: ${{ env.SNAPSHOT_BRANCH }} | |
- name: Change core version | |
run: | | |
sed ${{ matrix.config.sed_inplace }} 's|<powsybl-core.version>.*</powsybl-core.version>|<powsybl-core.version>'"$CORE_VERSION"'</powsybl-core.version>|' pom.xml | |
shell: bash | |
- name: Build with Maven | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get diagram version | |
run: echo "DIAGRAM_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#BUILD ENTSOE | |
- name: Check for SNAPSHOT branch | |
run: bash "${{ github.workspace }}/.github/workflows/check_snapshot_branch.sh" "https://github.com/powsybl/powsybl-entsoe.git" "$CORE_VERSION" | |
shell: bash | |
- name: Checkout entsoe-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-entsoe | |
ref: ${{ env.SNAPSHOT_BRANCH }} | |
- name: Change core version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsyblcore.version>.*</powsyblcore.version>|<powsyblcore.version>'"$CORE_VERSION"'</powsyblcore.version>|' pom.xml | |
shell: bash | |
- name: Change open-loadflow version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsyblopenloadflow.version>.*</powsyblopenloadflow.version>|<powsyblopenloadflow.version>'"$LOADFLOW_VERSION"'</powsyblopenloadflow.version>|' pom.xml | |
shell: bash | |
- name: Build with Maven | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get entsoe version | |
run: echo "ENTSOE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#BUILD OPENRAO | |
- name: Check for SNAPSHOT branch | |
run: bash "${{ github.workspace }}/.github/workflows/check_snapshot_branch.sh" "https://github.com/powsybl/powsybl-open-rao.git" "$CORE_VERSION" | |
shell: bash | |
- name: Checkout open-rao-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-open-rao | |
ref: ${{ env.SNAPSHOT_BRANCH }} | |
- name: Change core version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsybl.core.version>.*</powsybl.core.version>|<powsybl.core.version>'"$CORE_VERSION"'</powsybl.core.version>|' pom.xml | |
shell: bash | |
- name: Change entsoe version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsybl.entsoe.version>.*</powsybl.entsoe.version>|<powsybl.entsoe.version>'"$ENTSOE_VERSION"'</powsybl.entsoe.version>|' pom.xml | |
shell: bash | |
- name: Change open-loadflow version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsybl.openloadflow.version>.*</powsybl.openloadflow.version>|<powsybl.openloadflow.version>'"$LOADFLOW_VERSION"'</powsybl.openloadflow.version>|' pom.xml | |
shell: bash | |
- name: Build with Maven | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get open-rao version | |
run: echo "OPENRAO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#BUILD DYNAWO | |
- name: Check for SNAPSHOT branch | |
run: bash "${{ github.workspace }}/.github/workflows/check_snapshot_branch.sh" "https://github.com/powsybl/powsybl-dynawo.git" "$CORE_VERSION" | |
shell: bash | |
- name: Checkout dynawo-sources | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-dynawo | |
ref: ${{ env.SNAPSHOT_BRANCH }} | |
- name: Change core version | |
run: sed ${{ matrix.config.sed_inplace }} 's|<powsybl-core.version>.*</powsybl-core.version>|<powsybl-core.version>'"$CORE_VERSION"'</powsybl-core.version>|' pom.xml | |
shell: bash | |
- name: Build with Maven | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
- name: Get dynawo version | |
run: echo "DYNAWO_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#CHECKOUT_PYPOWSYBL_DEPENCIES | |
- name: Checkout powsybl-depencies | |
uses: actions/checkout@v4 | |
with: | |
repository: powsybl/powsybl-dependencies | |
ref: main | |
- name: Get dependencies version | |
run: echo "DEPENDENCIES_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | |
shell: bash | |
#UPDATE/INSTALL_PYPOWSYBL_DEPENCIES | |
- name: Update dependencies versions | |
run: | | |
mvn versions:set-property -Dproperty=powsybl-open-loadflow.version -DnewVersion=$LOADFLOW_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 | |
mvn versions:set-property -Dproperty=powsybl-entsoe.version -DnewVersion=$ENTSOE_VERSION -DgenerateBackupPoms=false | |
mvn versions:set-property -Dproperty=powsybl-open-rao.version -DnewVersion=$OPENRAO_VERSION -DgenerateBackupPoms=false | |
shell: bash | |
- name: Install powsybl-dependencies | |
run: mvn -batch-mode --no-transfer-progress clean install -DskipTests | |
shell: bash | |
#BUILD PYPOWSYBL | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Change java-pom.xml | |
working-directory: ./java | |
run: mvn versions:set-property -Dproperty=powsybl-dependencies.version -DnewVersion=$DEPENDENCIES_VERSION -DgenerateBackupPoms=false | |
shell: bash | |
- name: Install dependencies | |
run: pip3 install -r requirements.txt | |
- name: Build wheel | |
run: python3 setup.py bdist_wheel | |
shell: bash | |
- name: Install wheel | |
run: python -m pip install dist/*.whl --user | |
shell: bash | |
- name: Run tests | |
working-directory: ./tests | |
run: pytest | |
- name: check pypowsybl versions | |
working-directory: ./tests | |
run: python3 basic_import_test.py | |
- name: Upload wheel | |
uses: actions/upload-artifact@v3 | |
with: | |
name: pypowsybl-wheel-${{ matrix.config.name }}-${{ matrix.python.name }} | |
path: dist/*.whl | |
notify: | |
name: Notify Slack on failure | |
needs: [buil_pypowsybl] | |
runs-on: ubuntu-latest | |
if: failure() | |
steps: | |
- name: Slack Notification | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: ${{ job.status }} | |
fields: repo,message,commit,author,action,eventName,ref,workflow | |
author_name: GitHub Actions | |
mention: here | |
if_mention: failure,cancelled | |
job_name: ${{ job.job }} | |
channel: ci-pypowsybl | |
icon_emoji: ':github:' | |
username: GitHub Actions | |
text: 'Workflow failed! :x:' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SLACK_WEBHOOK_URL: https://hooks.slack.com/services/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 |