-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update windows ci splitting msvs to separate workflow
- Loading branch information
1 parent
3d52c30
commit b0b8993
Showing
2 changed files
with
115 additions
and
43 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
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,113 @@ | ||
--- | ||
name: Windows MSVS build and test | ||
on: | ||
push: | ||
branches: | ||
- 'master' | ||
- 'stable/*' | ||
pull_request: | ||
branches: | ||
- '**' | ||
release: | ||
types: | ||
- created | ||
|
||
jobs: | ||
test: | ||
name: Run tests | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: [ | ||
# Only os: windows-2022 has Visual Studio 2022 (v17) installed with toolset v143, which is required. | ||
# configuration: "Release" or "Debug", platform: "x86" or "x64". See solution Configuration Manager. | ||
{ os: windows-2022, configuration: "Release", platform: "x64" }, | ||
] | ||
steps: | ||
- name: Set up environment variables | ||
shell: cmd | ||
# For cmd, dont use double quotes in the echo command and dont put a space before >> %GITHUB_ENV% | ||
run: | | ||
if "${{ matrix.platform }}"=="x64" echo output_dir=x64\${{ matrix.configuration }}>> %GITHUB_ENV% | ||
if "${{ matrix.platform }}"=="x86" echo output_dir=${{ matrix.configuration }}>> %GITHUB_ENV% | ||
echo package_suffix=${{ matrix.os}}-msvs-v17-${{ matrix.configuration }}-${{ matrix.platform }}>> %GITHUB_ENV% | ||
- name: Check environment variables | ||
shell: cmd | ||
run: | | ||
echo Output directory - '${{ env.output_dir }}' | ||
echo Package suffix - '${{ env.package_suffix }}' | ||
if "${{ env.output_dir }}"=="" echo ERROR - No output_dir set, possibly unsupported platform '${{ matrix.platform }}'. Expecting x64 or x86. && exit 1 | ||
- name: Checkout source | ||
uses: actions/checkout@v4 | ||
with: | ||
path: ${{ github.event.repository.name }} | ||
- name: Checkout coinbrew | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: coin-or/coinbrew | ||
path: coinbrew | ||
- name: Set up msbuild | ||
uses: microsoft/setup-msbuild@v2 | ||
- name: Set up msys for coinbrew | ||
uses: msys2/setup-msys2@v2 | ||
with: | ||
update: true | ||
install: >- | ||
base-devel | ||
git | ||
zip | ||
path-type: inherit | ||
msystem: mingw64 | ||
- name: Fetch project | ||
run: | | ||
ADD_ARGS=() | ||
ADD_ARGS+=( --skip='ThirdParty/Metis ThirdParty/Mumps ThirdParty/Blas ThirdParty/Lapack' ) | ||
./coinbrew/coinbrew fetch ${{ github.event.repository.name }} --skip-update "${ADD_ARGS[@]}" | ||
echo "##################################################" | ||
echo "### Extracting Netlib and Miplib3 if available" | ||
if [ -d "./Data/Netlib/" ]; then gunzip ./Data/Netlib/*.gz; fi | ||
if [ -d "./Data/Miplib3/" ]; then gunzip ./Data/Miplib3/*.gz; fi | ||
echo "##################################################" | ||
shell: msys2 {0} | ||
- name: Build project | ||
shell: cmd | ||
run: | | ||
msbuild ${{ github.event.repository.name }}\MSVisualStudio\v17\${{ github.event.repository.name }}.sln /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /m | ||
- name: Test project | ||
shell: cmd | ||
run: | | ||
.\${{ github.event.repository.name }}\MSVisualStudio\v17\${{ github.event.repository.name }}Test.cmd .\${{ github.event.repository.name }}\MSVisualStudio\v17\${{ env.output_dir }} .\Data\Sample .\Data\Netlib .\Data\Miplib3 | ||
- name: Install project | ||
shell: cmd | ||
run: | | ||
mkdir dist | ||
copy ${{ github.event.repository.name }}\README.* dist\. | ||
copy ${{ github.event.repository.name }}\AUTHORS.* dist\. | ||
copy ${{ github.event.repository.name }}\LICENSE.* dist\. | ||
mkdir dist\bin | ||
copy ${{ github.event.repository.name }}\MSVisualStudio\v17\${{ env.output_dir }}\*.exe dist\bin\. | ||
mkdir dist\share | ||
if exist .\Data\Sample xcopy .\Data\Sample dist\share\coin-or-sample /i | ||
if exist .\Data\Netlib xcopy .\Data\Netlib dist\share\coin-or-netlib /i | ||
if exist .\Data\Miplib3 xcopy .\Data\Miplib3 dist\share\coin-or-miplib3 /i | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ${{ github.event.repository.name }}-${{ env.package_suffix }} | ||
path: dist | ||
if-no-files-found: error | ||
- name: Zip up dist contents for release | ||
if: ${{ github.event_name == 'release'}} | ||
run: cd dist && zip -r ../release.zip * | ||
shell: msys2 {0} | ||
- name: Upload package to release | ||
if: ${{ github.event_name == 'release'}} | ||
uses: actions/upload-release-asset@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
upload_url: ${{ github.event.release.upload_url }} | ||
asset_path: ./release.zip | ||
asset_name: ${{ github.event.repository.name }}-${{ github.event.release.tag_name }}-${{ env.package_suffix }}.zip | ||
asset_content_type: application/gzip |