Bump CMake version to check source code release. #23
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: C/C++ CI Windows | |
on: | |
push: | |
branches: [ "master", "github_actions" ] | |
pull_request: | |
branches: [ "master", "github_actions" ] | |
workflow_dispatch: | |
jobs: | |
build-windows: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-tags: true | |
- uses: microsoft/[email protected] | |
with: | |
vs-version: '17' | |
msbuild-architecture: x64 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8.0' | |
# - name: Download prerequisite packages | |
# run: | | |
# $client = new-object System.Net.WebClient; | |
# $client.DownloadFile("https://github.com/QIICR/dicom3tools/releases/download/20200512090031/dicom3tools_winexe_1.00.snapshot.20200512090031.zip", "c:\dicom3tools.zip") | |
# $client.DownloadFile("https://github.com/QIICR/zlib-dcmqi/releases/download/zlib-dcmqi-1.2.3-VS17-Win64-Release-static/zlib-dcmqi.zip", "c:\zlib-dcmqi.zip") | |
# $client.DownloadFile("https://github.com/QIICR/dcmtk-dcmqi/releases/download/DCMTK-dcmqi-3.6.7_20220105-VS12-Win64-Release-v0.0.32-static/DCMTK-dcmqi.zip", "c:\DCMTK-dcmqi.zip") | |
# $client.DownloadFile("https://github.com/QIICR/ITK-dcmqi/releases/download/ITK-dcmqi-VS17-Win64-Release-v0.0.40-static/ITK-dcmqi.zip", "c:\ITK-dcmqi.zip") | |
# shell: pwsh | |
# - name: Uncompress prerequisite packages | |
# run: | | |
# 7z x c:\dicom3tools.zip -oc:\dicom3tools | |
# 7z x c:\zlib-dcmqi.zip -oc:\zlib-install | |
# 7z x c:\DCMTK-dcmqi.zip -oc:\DCMTK-install | |
# 7z x c:\ITK-dcmqi.zip -oc:\ITK-install | |
# - name: Install prerequisite python packages | |
# run: | | |
# pip install jsondiff | |
- name: Prepare environment | |
run: | | |
$NOW=& Get-Date -format yyyy-MM-dd | |
echo "NOW=$NOW" >> $env:GITHUB_ENV | |
$git_hash=$(git.exe rev-parse --short ${{ github.sha }}) | |
echo "COMMIT_SHORT_SHA=$git_hash" >> $env:GITHUB_ENV | |
- name: Configure project | |
run: | | |
ls ${{ github.workspace }} | |
echo "WORKSPACE dir: ${{ github.workspace }}" | |
cmake --version | |
mkdir ${{ github.workspace }}\dcmtk-build | |
echo "Step 2" | |
cd ${{ github.workspace }}\dcmtk-build | |
echo "Step 3" | |
cmake -G "Visual Studio 17 2022" -Ax64 -DDCMTK_MODULES:STR="ofstd;oflog;oficonv;dcmdata" -DDCMTK_ENABLE_BUILTIN_OFICONV_DATA:BOOL=On -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }} ${{ github.workspace }} | |
- name: Build dcmtk | |
run: | | |
cd ${{ github.workspace }}\dcmtk-build/ | |
cmake --build . --config Release -- /m | |
- name: Test dcmtk | |
run: | | |
cd ${{ github.workspace }}\dcmtk-build | |
ctest -VV -C Release --no-compress-output | |
- name: Install dcmtk | |
run: | | |
cd ${{ github.workspace }}\dcmtk-build | |
cmake --build . --config Release --target INSTALL -- /m | |
Compress-Archive -Path ${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }} -Destination ${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }}-win64.zip | |
echo "Listing install dir: ${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }}" | |
ls ${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }} | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: dcmtk-install-zip-package | |
path: ${{ github.workspace }}\dcmtk-${{ env.NOW }}-${{ env.COMMIT_SHORT_SHA }}\dcmtk-*-win64.zip | |
publish-windows: | |
runs-on: windows-latest | |
timeout-minutes: 5 | |
# Only run if the event is not a pull request and the repository owner is michaelonken. | |
# The latter is to prevent forks from publishing packages even if the owner's token | |
# would have sufficient privileges. | |
if: ${{ (github.event_name != 'pull_request') && (github.repository_owner == 'michaelonken')}} | |
needs: build-windows | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-tags: true | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dcmtk-install-zip-package | |
path: ${{ github.workspace }}\dcmtk-install | |
- name: Publish package | |
run: | | |
echo "Listing install dir: ${{ github.workspace }}\dcmtk-install" | |
ls ${{ github.workspace }}\dcmtk-install | |
pip install -U "scikit-ci-addons>=0.22.0" | |
ci_addons publish_github_release michaelonken/dcmtk ` | |
--exit-success-if-missing-token ` | |
--release-packages "${{ github.workspace }}\dcmtk-install\dcmtk-*-win64.zip" ` | |
--prerelease-packages "${{ github.workspace }}\dcmtk-install\dcmtk-*-win64.zip" ` | |
--prerelease-packages-clear-pattern "dcmtk-*-win64.zip" ` | |
--prerelease-packages-keep-pattern "*<COMMIT_SHORT_SHA>*" ` | |
--token ${{ secrets.PUBLISH_RELEASE_TOKEN }} |