Separate build and publish phase in CI. #9
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: C/C++ CI Windows | |
on: | |
push: | |
branches: [ "master" ] | |
pull_request: | |
branches: [ "master" ] | |
workflow_dispatch: | |
jobs: | |
build-windows: | |
runs-on: windows-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v3 | |
- 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: Configure project | |
run: | | |
ls ${{ github.workspace }} | |
echo "WORKSPACE dir: ${{ github.workspace }}" | |
cmake --version | |
mkdir ${{ github.workspace }}\dcmqi-build | |
echo "Step 2" | |
cd ${{ github.workspace }}\dcmqi-build | |
echo "Step 3" | |
cmake -G "Visual Studio 17 2022" -Ax64 -DITK_DIR:PATH=c:\ITK-install\lib\cmake\ITK-5.3 -DDCMTK_DIR:PATH=c:\DCMTK-install\cmake -DZLIB_ROOT:PATH=c:\zlib-install -DZLIB_INCLUDE_DIR:PATH=c:\zlib-install\include -DZLIB_LIBRARY:FILEPATH=c:\zlib-install\lib\zlib.lib -DBUILD_SHARED_LIBS:BOOL=OFF ${{ github.workspace }} | |
- name: Build dcmqi and package | |
run: | | |
cd ${{ github.workspace }}\dcmqi-build/ | |
cmake --build . --config Release -- /m | |
cd ${{ github.workspace }}\dcmqi-build\dcmqi-build | |
cmake --build . --config Release --target PACKAGE -- /m | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: dcmqi-build | |
path: ${{ github.workspace }}\dcmqi-build\dcmqi-build\dcmqi-*-win64*.zip | |
# TODO remove (debug) | |
- name: Display structure of github workspace files | |
run: ls -R | |
working-directory: ${{ github.workspace }} | |
publish-windows: | |
runs-on: windows-latest | |
timeout-minutes: 5 | |
if: github.event_name != 'pull_request' | |
needs: build-windows | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/download-artifact@v3 | |
with: | |
name: dcmqi-build | |
#path: ${{ github.workspace }}\dcmqi-build\dcmqi-build\dcmqi-*-win64*.zip | |
path: ${{ github.workspace }}\dcmqi-build\dcmqi-build | |
- name: Display structure of github workspace files | |
run: ls -R | |
working-directory: ${{ github.workspace }}\dcmqi-build\dcmqi-build | |
- name: Publish package | |
run: | | |
pip install -U "scikit-ci-addons>=0.22.0" | |
ci_addons publish_github_release qiicr/dcmqi ` | |
--exit-success-if-missing-token ` | |
--release-packages "${{ github.workspace }}\dcmqi-build\dcmqi-build\dcmqi-*-win64.zip" ` | |
--prerelease-packages "${{ github.workspace }}\dcmqi-build\dcmqi-build\dcmqi-*-win64-*.zip" ` | |
--prerelease-packages-clear-pattern "dcmqi-*-win64-*" ` | |
--prerelease-packages-keep-pattern "*<COMMIT_DATE>-<COMMIT_SHORT_SHA>*" ` | |
--token ${{ secrets.RELEASE_TOKEN }} |