Merge remote-tracking branch 'origin/main' into hotfix/ifpartpattern #1148
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: .NET Core | |
on: [push] | |
env: | |
DOTNET_NOLOGO: true | |
MSSQL_SA_PASSWORD: "YourStrong!Passw0rd" | |
ACCEPT_EULA: "Y" | |
MSSQL_PID: "developer" | |
jobs: | |
build: | |
runs-on: ubuntu-20.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@v3 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: "6.0.x" | |
- uses: actions/setup-java@v3 | |
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/20.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: | | |
tag="$(fgrep AssemblyVersion SharedAssemblyInfo.cs | cut -d'"' -f2)" | |
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-"$tag"-cli-linux-x64 | |
cd ../ii-win-x64 | |
zip -q9r ../release/ii-"$tag"-cli-win-x64.zip . | |
cd .. | |
tar -zcvf ./release/ii-"$tag"-cli-linux-x64.tar.gz ii-"$tag"-cli-linux-x64 | |
git_tag="$(git rev-parse --short HEAD)" | |
cp ./release/ii-"$tag"-cli-linux-x64.tar.gz ./ii-"$git_tag"-cli-linux-x64.tar.gz | |
- name: Store created ii binary | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ii | |
path: "*.tar.gz" | |
retention-days: 1 | |
- 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 | |
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@v3 | |
with: | |
name: IsIdentifiablePlugin | |
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 |