Skip to content

Merge pull request #385 from SMI/dependabot/nuget/Microsoft.SourceLin… #877

Merge pull request #385 from SMI/dependabot/nuget/Microsoft.SourceLin…

Merge pull request #385 from SMI/dependabot/nuget/Microsoft.SourceLin… #877

Workflow file for this run

name: Build, test and package
on: push
env:
MSSQL_SA_PASSWORD: "YourStrong!Passw0rd"
ACCEPT_EULA: "Y"
MSSQL_PID: "developer"
jobs:
package:
runs-on: windows-latest
steps:
- name: Checkout RdmpDicom source
uses: actions/checkout@v4
- name: Checkout RDMP source
uses: actions/checkout@v4
with:
repository: HicServices/RDMP
ref: develop
path: RDMP
- uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
- name: Get version
id: version
shell: cmd
run: |
for /f tokens^=1^,2^ delims^=^" %%i in (SharedAssemblyInfo.cs) do @if "%%i"=="[assembly: AssemblyVersion(" echo version=%%j>> %GITHUB_OUTPUT%
perl -ne "print """rdmpversion=""".$1."""\n""" if /version>(.+)</i" RDMP\directory.build.props >>%GITHUB_OUTPUT%
- name: Install MS SQL 2019
uses: crazy-max/ghaction-chocolatey@v3
with:
args: install -ry sqllocaldb wget
- name: Build
run: dotnet build -c Release --nologo
- name: Set up database
run: |
SqlLocalDB.exe create MSSQLLocalDB -s
sqlcmd -l 180 -S "(localdb)\MSSQLLocalDB" -Q "SELECT @@VERSION;"
dotnet run --project RDMP\Tools\rdmp\rdmp.csproj -c Release -- install --createdatabasetimeout 180 "(localdb)\MSSQLLocalDB" TEST_
- name: Package
shell: bash
run: |
wget https://raw.githubusercontent.com/SMI/DicomTypeTranslation/main/Templates/CT.it
dotnet publish Rdmp.Dicom/Rdmp.Dicom.csproj -o p/main -c Release --self-contained false -nologo
dotnet publish Rdmp.Dicom.UI/Rdmp.Dicom.UI.csproj -o p/windows -c Release --self-contained false -nologo
cat > plugin.nuspec <<EOP
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>Rdmp.Dicom</id>
<version>${{ steps.version.outputs.version }}</version>
<authors>Health Informatics Service, University of Dundee</authors>
<description>Imaging plugin for Research Data Management Platform </description>
<dependencies>
<dependency id="HIC.RDMP.Plugin" version="${{ steps.version.outputs.rdmpversion }}" />
</dependencies>
</metadata>
</package>
EOP
rm -f p/windows/windows.dll
rm -f p/windows/ja-JP/Terminal.Gui.resources.dll
rm -f p/windows/fr-FR/Terminal.Gui.resources.dll
rm -f p/windows/pt-PT/Terminal.Gui.resources.dll
rm -f p/main/main.dll
rm -f p/main/ja-JP/Terminal.Gui.resources.dll
rm -f p/main/fr-FR/Terminal.Gui.resources.dll
rm -f p/main/pt-PT/Terminal.Gui.resources.dll
7z a -tzip Rdmp.Dicom.${{ steps.version.outputs.version }}.nupkg plugin.nuspec p
dotnet pack Rdmp.Dicom/Rdmp.Dicom.csproj -c Release -p:Version=${{ steps.version.outputs.version }} --include-source --include-symbols -o .
cat > testcmd.yaml <<-EOC
Commands:
- listsupportedcommands
- describe CreateNewImagingDatasetSuite
- NewObject ConnectionStringKeyword MicrosoftSqlServer TrustServerCertificate yes
- NewObject ConnectionStringKeyword MicrosoftSqlServer Encrypt yes
- createnewexternaldatabaseserver LiveLoggingServer_ID "DatabaseType:MicrosoftSqlServer:Name:ImagingTest:Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Encrypt=yes;TrustServerCertificate=true"
- CreateNewImagingDatasetSuite "DatabaseType:MicrosoftSqlServer:Name:ImagingTest:Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Encrypt=yes;TrustServerCertificate=true" ./data DicomFileCollectionSource CT_ CT.it false true
- AddTag Catalogue:CT_ImageTable StudyDate null
- AddTag Catalogue:CT_*Table SeriesDate null
- AddTag Catalogue:CT_*Table SeriesDate null
- AddTag Catalogue:CT_*Table SeriesDate null
- CreateNewImagingDatasetSuite "DatabaseType:MicrosoftSqlServer:Name:ImagingTest2:Server=(localdb)\MSSQLLocalDB;Integrated Security=true;Encrypt=yes;TrustServerCertificate=true" ./data DicomFileCollectionSource CT_ CT.it false true
EOC
- name: Test
run: |
dotnet test -c Release
echo "Loading plugin"
dotnet run --project RDMP\\Tools\\rdmp\\rdmp.csproj -c Release -- pack -p --file Rdmp.Dicom.${{ steps.version.outputs.version }}.nupkg --dir yaml
7z t Rdmp.Dicom.${{ steps.version.outputs.version }}.nupkg
echo "Running plugin test script"
dotnet run --project RDMP\\Tools\\rdmp\\rdmp.csproj -c Release -- -f testcmd.yaml --dir yaml
- name: Store created nupkg files
uses: actions/upload-artifact@v3
with:
path: ./*.nupkg
retention-days: 1
- name: Nuget push
if: contains(github.ref,'refs/tags/')
run: dotnet nuget push HIC.Rdmp.Dicom.*.nupkg -k ${{ secrets.NUGET_KEY }} --skip-duplicate --source https://api.nuget.org/v3/index.json
- name: Upload release binaries
if: contains(github.ref,'refs/tags/')
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ github.ref }}
file: 'Rdmp.Dicom.${{ steps.version.outputs.version }}.nupkg'