-
Notifications
You must be signed in to change notification settings - Fork 3
135 lines (129 loc) · 6.29 KB
/
dotnet-core.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
name: .NET Core
on: [push]
env:
DOTNET_NOLOGO: true
MSSQL_SA_PASSWORD: "YourStrong!Passw0rd"
ACCEPT_EULA: "Y"
MSSQL_PID: "developer"
jobs:
build:
runs-on: ubuntu-22.04
services:
postgres:
image: postgres:latest
env:
POSTGRES_PASSWORD: pgpass4291
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Disable disk flushing on CI and add libarchive-tools
run: sudo apt-get install -y libeatmydata1 libarchive-tools
- uses: actions/checkout@v4
- name: Setup .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: "6.0.x"
- uses: actions/setup-java@v4
with:
distribution: "adopt"
java-version: "11"
cache: "maven"
- name: Start MySQL
run: |
mv Tests/IsIdentifiableTests/TestDatabases-github.xml Tests/IsIdentifiableTests/TestDatabases.xml
sudo systemctl start mysql.service
- name: Start MongoDb
uses: supercharge/[email protected]
with:
mongodb-version: "6.0"
- name: Install MS SQL Server
run: |
sudo wget -qO/etc/apt/trusted.gpg.d/microsoft.asc https://packages.microsoft.com/keys/microsoft.asc
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)"
sudo apt-get install -y --no-install-recommends postgresql mssql-tools mssql-server
sudo -E /opt/mssql/bin/mssql-conf -n setup accept-eula
- name: Fetch tessdata
run: |
bash data/tessdata/download.sh
mv eng.traineddata ./data/tessdata/eng.traineddata
- name: Build
run: dotnet build --configuration Release --nologo
- name: Test
run: dotnet test --blame -l:"console;verbosity=normal" --no-restore --nologo -p:CollectCoverage=true -p:CoverletOutput="$(pwd)/coverage/" -p:CoverletOutputFormat="cobertura"
- name: upload coverage
uses: codecov/[email protected]
with:
files: ./coverage/coverage.cobertura.xml
fail_ci_if_error: true
token: 42f74c8f-0e77-40db-8497-fa05f20837f6
- name: Build Java NERD
run: |
set -exuo pipefail
cd nlp/uk.ac.dundee.hic.nerd
mkdir -p target/stanford-ner-2018-10-16
curl -sL https://nlp.stanford.edu/software/stanford-ner-2018-10-16.zip | bsdtar -xf- -C target/stanford-ner-2018-10-16
mvn -B -q compile assembly:single
java -jar target/nerd-0.0.1-SNAPSHOT.jar &
timeout 30 sh -c 'until nc -z 127.0.0.1 1881; do sleep 1; done'
printf "University of Dundee\0Fred Bloggs\0Ninewells Hospital\0person\0woman\0man\0camera\0tv\0" | nc -N 127.0.0.1 1881
kill $!
mkdir -p ../../release
dotnet publish --self-contained --nologo -r linux-x64 -o smi-nerd-linux-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2)
dotnet publish --self-contained --nologo -r win-x64 -o smi-nerd-win-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2)
tar czf smi-nerd-linux-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2).tar.gz smi-nerd-linux-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2)
cd smi-nerd-win-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2)
zip -9r ../smi-nerd-win-$(fgrep AssemblyVersion ../../../SharedAssemblyInfo.cs | cut -d'"' -f2).zip .
cd -
mv smi-nerd-*.tar.gz smi-nerd-*.zip ../../release/
mv target/nerd-0.0.1-SNAPSHOT.jar ../../release/smi-nerd-$(fgrep AssemblyVersion ../../SharedAssemblyInfo.cs | cut -d'"' -f2).jar
- name: Package ii binary
run: |
cd ii
dotnet publish --runtime win-x64 -c Release --self-contained true -o ../ii-win-x64
dotnet publish --runtime linux-x64 -c Release --self-contained true -o ../ii-$(fgrep AssemblyVersion ../SharedAssemblyInfo.cs|cut -d'"' -f2)-cli-linux-x64
cd ../ii-win-x64
zip -q9r ../release/ii-$(fgrep AssemblyVersion ../SharedAssemblyInfo.cs|cut -d'"' -f2)-cli-win-x64.zip .
cd ..
tar -zcvf ./release/ii-$(fgrep AssemblyVersion SharedAssemblyInfo.cs|cut -d'"' -f2)-cli-linux-x64.tar.gz ii-$(fgrep AssemblyVersion SharedAssemblyInfo.cs|cut -d'"' -f2)-cli-linux-x64
- name: Test ii binary
run: |
set -e
mkdir ./testii
cd ./testii
tar -xzf ../release/ii-*-cli-linux-x64.tar.gz
./ii-*-cli-linux-x64/ii --help
cd ..
wget -qO- https://github.com/HicServices/BadMedicine.Dicom/releases/download/v0.0.14/baddicom-linux-x64-v0.0.14.tar.gz | tar -xzf -
./linux-x64/BadDicom -s 100 ./testdicoms/ 10 10 CT
./testii/ii-*-cli-linux-x64/ii dir -d ./testdicoms --tessdirectory ./data/tessdata/ --storereport
- name: Pack
run: dotnet pack IsIdentifiable/IsIdentifiable.csproj -c Release -p:PackageVersion=$(fgrep AssemblyVersion SharedAssemblyInfo.cs|cut -d'"' -f2) --nologo --include-source -o .
- name: Package RDMP Plugin
run: |
cd IsIdentifiablePlugin
dotnet publish --self-contained false -c Release
nuget pack ./IsIdentifiablePlugin.nuspec -Properties Configuration=Debug -IncludeReferencedProjects -Symbols -Version $(grep AssemblyInformationalVersion ../SharedAssemblyInfo.cs | cut -d'"' -f2)
mv ./IsIdentifiablePlugin.*.nupkg ../release/
cd ..
- name: Nuget push
if: contains(github.ref,'refs/tags/')
run: dotnet nuget push IsIdentifiable.*.nupkg -s https://api.nuget.org/v3/index.json -k ${{ secrets.NUGET_KEY }} --skip-duplicate
- name: Store created nupkg files
uses: actions/upload-artifact@v4
with:
path: release/IsIdentifiablePlugin.*.nupkg
retention-days: 1
- name: Upload binaries to release
uses: svenstaro/[email protected]
if: contains(github.ref, 'refs/tags/v')
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: release/*
tag: ${{ github.ref }}
overwrite: true
file_glob: true