Show output of failed tests. #35
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 DCMTK Support libraries | |
shell: pwsh | |
run: | | |
C:\msys64\usr\bin\wget.exe -O dcmtk_support.zip https://dicom.offis.de/download/dcmtk/dcmtk368/support/dcmtk-3.6.8-win64-support-MT-msvc-17.4.zip | |
# Uncompress support libraries into directory c:\dcmtk_support\libs. | |
# We rename the original directory to libs so that the rest of the script | |
# can use the ame path even if the support library package is updated | |
# in the future in the download task above. | |
- name: Uncompress Support libraries | |
shell: pwsh | |
run: | | |
7z x dcmtk_support.zip -oc:\dcmtk_support\ | |
cd c:\dcmtk_support | |
move dcmtk* libs | |
echo "Content of c:\dcmtk_support\libs" | |
ls c:\dcmtk_support\libs | |
- 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;dcmimgle;dcmimage;dcmjpeg;dcmjpls;dcmtls;dcmnet;dcmsr;dcmsign;dcmwlm;dcmqrdb;dcmpstat;dcmrt;dcmiod;dcmfg;dcmseg;dcmtract;dcmpmap;dcmect" -DDCMTK_ENABLE_BUILTIN_OFICONV_DATA:BOOL=On -DBUILD_SHARED_LIBS:BOOL=ON -DDCMTK_SUPPORT_LIBRARIES_DIR:PATH=c:\dcmtk_support\libs -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 --output-on-failure | |
- 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>*" ` | |
--prerelease-sha github_actions ` | |
--token ${{ secrets.PUBLISH_RELEASE_TOKEN }} |