-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Damien Jeandemange <[email protected]>
- Loading branch information
1 parent
ddef659
commit 3bfe8f8
Showing
2 changed files
with
137 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
name: Snapshot CI | ||
|
||
on: | ||
workflow_dispatch: | ||
schedule: | ||
- cron: '30 3 * * *' | ||
|
||
jobs: | ||
build: | ||
name: Build OS ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
os: [ubuntu-latest, windows-latest] # macos-latest : Knitro does not yet support Java API on macOS, to be tried later on | ||
|
||
steps: | ||
- name: Install Knitro (Linux) | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
wget -nv -O knitro.tar.gz --user "$KNITRO_DOWNLOAD_USER" --password "$KNITRO_DOWNLOAD_PASSWORD" "$KNITRO_LINUX_URL" | ||
mkdir -p $RUNNER_TEMP/knitro | ||
tar xzf knitro.tar.gz -C $RUNNER_TEMP/knitro | ||
echo "KNITRODIR=$RUNNER_TEMP/knitro/knitro-14.1.0-Linux64" >> "$GITHUB_ENV" | ||
env: | ||
KNITRO_DOWNLOAD_USER: ${{ secrets.KNITRO_DOWNLOAD_USER }} | ||
KNITRO_DOWNLOAD_PASSWORD: ${{ secrets.KNITRO_DOWNLOAD_PASSWORD }} | ||
KNITRO_LINUX_URL: ${{ secrets.KNITRO_LINUX_URL }} | ||
|
||
- name: Install Knitro (Windows) | ||
if: matrix.os == 'windows-latest' | ||
shell: powershell | ||
run: | | ||
C:\msys64\usr\bin\wget.exe -nv -O knitro.zip --user "$env:KNITRO_DOWNLOAD_USER" --password "$env:KNITRO_DOWNLOAD_PASSWORD" "$env:KNITRO_WINDOWS_URL" | ||
7z x -y knitro.zip -oC:\knitro | ||
echo "KNITRODIR=C:\knitro\knitro-14.1.0-Win64" >> "$env:GITHUB_ENV" | ||
env: | ||
KNITRO_DOWNLOAD_USER: ${{ secrets.KNITRO_DOWNLOAD_USER }} | ||
KNITRO_DOWNLOAD_PASSWORD: ${{ secrets.KNITRO_DOWNLOAD_PASSWORD }} | ||
KNITRO_WINDOWS_URL: ${{ secrets.KNITRO_WINDOWS_URL }} | ||
|
||
# Define script path variable | ||
- name: Set up script path | ||
run: | | ||
SCRIPTS_PATH="${GITHUB_WORKSPACE}/scripts/.github/workflows/scripts" | ||
if [[ "${{ matrix.os }}" == "windows-latest" ]]; then | ||
SCRIPTS_PATH=$(echo "$SCRIPTS_PATH" | sed 's/\\/\//g') | ||
fi | ||
echo "SCRIPTS_PATH=$SCRIPTS_PATH" >> $GITHUB_ENV | ||
# Build powsybl-core on main branch | ||
- name: Checkout core sources | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: powsybl/powsybl-core | ||
ref: main | ||
path: powsybl-core | ||
|
||
- name: Build powsybl-core | ||
run: | | ||
mvn -batch-mode --no-transfer-progress clean install -DskipTests | ||
echo "CORE_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | ||
working-directory: ./powsybl-core | ||
|
||
# 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 | ||
with: | ||
sparse-checkout: | | ||
.github | ||
sparse-checkout-cone-mode: false | ||
path: scripts | ||
|
||
# Build powsybl-open-loadflow snapshot | ||
- name: Checking for open-loadflow snapshot branch | ||
run : ${{ env.SCRIPTS_PATH }}/check_snapshot_branch.sh "https://github.com/powsybl/powsybl-open-loadflow.git" ${{ env.CORE_VERSION }} | ||
- name: Checkout open-loadflow sources | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: powsybl/powsybl-open-loadflow | ||
ref: ${{ env.SNAPSHOT_BRANCH }} | ||
path: powsybl-open-loadflow | ||
- name: Build open-loadflow snapshot | ||
run: | | ||
mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=${{ env.CORE_VERSION}} -DgenerateBackupPoms=false | ||
mvn -batch-mode --no-transfer-progress clean install -DskipTests | ||
echo "LOADFLOW_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_ENV | ||
working-directory: ./powsybl-open-loadflow | ||
|
||
- name: Checkout sources | ||
uses: actions/checkout@v4 | ||
|
||
- name: update pom.xml with snapshot versions | ||
run: | | ||
mvn versions:set-property -Dproperty=powsybl-core.version -DnewVersion=$CORE_VERSION -DgenerateBackupPoms=false | ||
mvn versions:set-property -Dproperty=powsybl-open-loadflow.version -DnewVersion=$LOADFLOW_VERSION -DgenerateBackupPoms=false | ||
- name: Set up JDK 17 | ||
uses: actions/setup-java@v4 | ||
with: | ||
distribution: 'temurin' | ||
java-version: '17' | ||
|
||
- name: Build with Maven (Ubuntu) | ||
if: matrix.os != 'windows-latest' | ||
run: | | ||
./mvnw install:install-file -Dfile="$KNITRODIR/examples/Java/lib/Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true | ||
./mvnw --batch-mode -Pjacoco install | ||
env: | ||
ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }} | ||
|
||
- name: Build with Maven (Windows) | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
call mvnw.cmd install:install-file -Dfile="%KNITRODIR%\examples\Java\lib\Knitro-Interfaces-2.5-KN_14.1.0.jar" -DgroupId=com.artelys -DartifactId=knitro-interfaces -Dversion=14.1.0 -Dpackaging=jar -DgeneratePom=true | ||
mvnw.cmd --batch-mode install | ||
shell: cmd | ||
env: | ||
ARTELYS_LICENSE: ${{ secrets.ARTELYS_LICENSE }} |