v9.9-rte1.0 #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: Windows Java Dotnet | |
on: | |
workflow_dispatch: | |
inputs: | |
rtefrance_ortools_branch: | |
description: 'rte-france/or-tools branch name' | |
required: true | |
default: 'main' | |
push: | |
branches: | |
- main | |
- feature/* | |
- merge* | |
- fix/* | |
- release/* | |
release: | |
types: [ created ] | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
RELEASE_CREATED: ${{ github.event_name == 'release' && github.event.action == 'created' }} | |
jobs: | |
build: | |
name: Windows java and dotnet | |
runs-on: windows-latest | |
env: | |
XPRESSDIR: ${{ github.workspace }}\xpressmp | |
XPRESS: ${{ github.workspace }}\xpressmp\\bin | |
XPAUTH_PATH: ${{ github.workspace }}\xpressmp\bin\xpauth.xpr | |
strategy: | |
fail-fast: false | |
steps: | |
- name: Checkout or-tools | |
uses: actions/checkout@v4 | |
with: | |
repository: rte-france/or-tools | |
ref: ${{ github.event.inputs.rtefrance_ortools_branch || 'main' }} | |
- name: Checkout this repository | |
uses: actions/checkout@v4 | |
with: | |
path: "patch" | |
- name: Setup .NET 6.0 | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 6.0.x | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- name: Apply patch | |
shell: bash | |
run: | | |
cp -r patch/* . | |
python patch.py | |
- name: Install SWIG 4.1.1 | |
run: | | |
(New-Object System.Net.WebClient).DownloadFile("http://prdownloads.sourceforge.net/swig/swigwin-4.1.1.zip","swigwin-4.1.1.zip"); | |
Expand-Archive .\swigwin-4.1.1.zip .; | |
echo "$((Get-Item .).FullName)/swigwin-4.1.1" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
Remove-Item .\swigwin-4.1.1.zip | |
- name: Check swig | |
run: swig -version | |
- name: Set-up Xpress with pip | |
shell: bash | |
run: | | |
python -m pip install --no-cache-dir "xpress>=9.2,<9.3" | |
XPRESS_DIR="${{ env.pythonLocation }}\Lib\site-packages\xpress" | |
cp -r $XPRESS_DIR/lib $XPRESS_DIR/bin | |
echo "XPRESSDIR=$XPRESS_DIR" >> $GITHUB_ENV | |
echo "XPAUTH_PATH=$XPRESS_DIR\license\community-xpauth.xpr" >> $GITHUB_ENV | |
echo "$XPRESS_DIR/bin" >> $GITHUB_PATH | |
- name: Check cmake | |
run: cmake --version | |
- name: Configure | |
run: > | |
cmake -S. -Bbuild | |
-G "Visual Studio 17 2022" | |
-DCMAKE_BUILD_TYPE=Release | |
-DBUILD_JAVA=ON | |
-DBUILD_DOTNET=ON | |
-DBUILD_EXAMPLES=${{ env.RELEASE_CREATED == 'true' && 'OFF' || 'ON' }} | |
-DBUILD_CXX_SAMPLES=OFF | |
-DBUILD_SAMPLES=OFF | |
-DCMAKE_INSTALL_PREFIX=install | |
-DBUILD_FLATZINC=OFF | |
- name: Build | |
run: > | |
cmake --build build | |
--config Release | |
--target ALL_BUILD | |
-v -j2 | |
- name: Tests not xpress | |
working-directory: ./build/ | |
run: > | |
ctest -C Release | |
--output-on-failure | |
-E "_xpress" | |
- name: Check xpress installation | |
shell: bash | |
run: | | |
echo "ls -l $XPRESSDIR" | |
ls -l $XPRESSDIR | |
echo "ls -l $XPRESSDIR/bin" | |
ls -l $XPRESSDIR/bin | |
echo "ls -l $XPRESSDIR/lib" | |
ls -l $XPRESSDIR/lib | |
echo $XPAUTH_PATH | |
cat $XPAUTH_PATH | |
- name: Tests xpress | |
working-directory: ./build/ | |
run: | | |
$env:XPRESSDIR | |
Get-ChildItem -Path $env:XPRESSDIR | |
ctest -V -C Release --output-on-failure -R "_xpress" | |
- name: set name variables | |
id: names | |
shell: bash | |
run: | | |
SHARED=${{ matrix.shared }} | |
[ $SHARED == "ON" ] && WITH_SHARED="_shared" || WITH_SHARED="_static" | |
OS="_windows-latest" | |
APPENDIX="${OS}" | |
echo "appendix=$APPENDIX" >> $GITHUB_OUTPUT | |
APPENDIX_WITH_SHARED="${OS}${WITH_SHARED}" | |
echo "appendix_with_shared=$APPENDIX_WITH_SHARED" >> $GITHUB_OUTPUT | |
- name: Get release | |
if: ${{ env.RELEASE_CREATED == 'true' }} | |
id: get_release | |
uses: | |
bruceadams/[email protected] | |
- name: install zip | |
shell: cmd | |
run: | | |
choco install zip --no-progress | |
- name: prepare OR-Tools jar | |
id: jar | |
shell: bash | |
run: | | |
cd ./build/java | |
MY_DIR="ortools_java${{ steps.names.outputs.appendix }}" | |
mkdir ${MY_DIR} | |
cp ortools-*/target/*.jar "${MY_DIR}" | |
ARCHIVE_NAME="${MY_DIR}.zip" | |
ARCHIVE_PATH="${{ github.workspace }}/build/${ARCHIVE_NAME}" | |
zip -r "${ARCHIVE_PATH}" "${MY_DIR}" | |
echo "archive_name=$ARCHIVE_NAME" >> $GITHUB_OUTPUT | |
echo "archive_path=$ARCHIVE_PATH" >> $GITHUB_OUTPUT | |
- name: Upload OR-Tools jar artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.jar.outputs.archive_name }} | |
path: ${{ steps.jar.outputs.archive_path }} | |
- name: Publish OR-Tools jar asset | |
if: ${{ env.RELEASE_CREATED == 'true' }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: build/${{ steps.jar.outputs.archive_name }} | |
- name: prepare OR-Tools dotnet | |
id: dotnet | |
shell: bash | |
run: | | |
cd ./build/dotnet/packages/ | |
MY_DIR="ortools_dotnet${{ steps.names.outputs.appendix }}" | |
mkdir ${MY_DIR} | |
cp Google.OrTools.*.nupkg "${MY_DIR}" | |
cp Google.OrTools.runtime.*.nupkg "${MY_DIR}" | |
ARCHIVE_NAME="${MY_DIR}.zip" | |
ARCHIVE_PATH="${{ github.workspace }}/build/${ARCHIVE_NAME}" | |
zip -r "${ARCHIVE_PATH}" "${MY_DIR}" | |
echo "archive_name=$ARCHIVE_NAME" >> $GITHUB_OUTPUT | |
echo "archive_path=$ARCHIVE_PATH" >> $GITHUB_OUTPUT | |
- name: Upload OR-Tools dotnet artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ steps.dotnet.outputs.archive_name }} | |
path: ${{ steps.dotnet.outputs.archive_path }} | |
- name: Publish OR-Tools dotnet asset | |
if: ${{ env.RELEASE_CREATED == 'true' }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: build/${{ steps.dotnet.outputs.archive_name }} |