Skip to content

Commit

Permalink
v0.3.10: Upgraded reindexer version to 3.20. Added Musl(Alpine) nativ…
Browse files Browse the repository at this point in the history
…e assets for embedded. Seperated native assets into new nuget packages.
  • Loading branch information
oruchreis committed Nov 30, 2023
1 parent 0c09a6a commit c568fc8
Show file tree
Hide file tree
Showing 29 changed files with 507 additions and 385 deletions.
132 changes: 19 additions & 113 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,123 +1,29 @@
name: Build, Test, Package

on:
push:
branches: [ master ]
paths:
- 'src/**.csproj'
- '.github/workflows/build.yml'
pull_request:
workflow_run:
workflows:
- 'Windows Test'
- 'Unix Test'
branches: [ master ]
types:
- completed

jobs:
windows-test:
runs-on: windows-2022
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1
strategy:
matrix:
runtime: [ 'win-x64', 'win-x86' ]
steps:
- uses: actions/checkout@v2
- name: Caching
uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-${{ hashFiles('**/*.csproj') }} #hash of project files
restore-keys: |
${{ runner.os }}-
- name: Setup .NET Sdk
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
3.1.x
5.x
6.x
7.x
#- name: Clean #https://github.com/actions/virtual-environments/issues/1090
# run: dotnet clean -f netcoreapp3.1 --runtime ${{ matrix.runtime }} && dotnet nuget locals all --clear
- name: Test .NET 7 ${{ matrix.runtime }}
run: dotnet test -v normal -f net7.0 --logger "console;verbosity=detailed" --runtime ${{ matrix.runtime }}
- name: Test .NET 6 ${{ matrix.runtime }}
run: dotnet test -v normal -f net6.0 --logger "console;verbosity=detailed" --runtime ${{ matrix.runtime }}
- name: Test .NET 5 ${{ matrix.runtime }}
if: ${{ matrix.runtime != 'win-x86' }} #https://github.com/actions/setup-dotnet/issues/72
run: dotnet test -v normal -f net5.0 --logger "console;verbosity=detailed" --runtime ${{ matrix.runtime }}
- name: Test .NET Core 3.1 ${{ matrix.runtime }}
if: ${{ matrix.runtime != 'win-x86' }} #https://github.com/actions/setup-dotnet/issues/72
run: dotnet test -v normal -f netcoreapp3.1 --logger "console;verbosity=detailed" --runtime ${{ matrix.runtime }}

ubuntu-test:
runs-on: ubuntu-latest
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1
steps:
- uses: actions/checkout@v2
- name: Caching
uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-${{ hashFiles('**/*.csproj') }} #hash of project files
restore-keys: |
${{ runner.os }}-
- name: Setup .NET Sdk
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
3.1.x
5.x
6.x
7.x
- name: Test .NET 7
run: dotnet test -v normal -f net7.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET 6
run: dotnet test -v normal -f net6.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET 5
run: dotnet test -v normal -f net5.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET Core 3.1
run: dotnet test -v normal -f netcoreapp3.1 --logger "console;verbosity=detailed" --nologo /nologo

osx-test:
runs-on: macos-latest
env:
DYLD_PRINT_LIBRARIES: 1
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1
steps:
- uses: actions/checkout@v2
- name: Caching
uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-${{ hashFiles('**/*.csproj') }} #hash of project files
restore-keys: |
${{ runner.os }}-
- name: Setup .NET Sdk
uses: actions/setup-dotnet@v3
with:
dotnet-version: |
3.1.x
5.x
6.x
7.x
- name: Test .NET 7
run: dotnet test -v normal -f net7.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET 6
run: dotnet test -v normal -f net6.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET 5
run: dotnet test -v normal -f net5.0 --logger "console;verbosity=detailed" --nologo /nologo
- name: Test .NET Core 3.1
run: dotnet test -v normal -f netcoreapp3.1 --logger "console;verbosity=detailed" --nologo /nologo

upload-packages:
needs: [windows-test, ubuntu-test, osx-test]
if: success()
jobs:
upload-packages:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: windows-2022
strategy:
matrix:
project: [ 'Core', 'Embedded','Remote.Grpc' ]
project:
- 'Core'
- 'Embedded'
- 'Remote.Grpc'
- 'Embedded.NativeAssets.Win-x64'
- 'Embedded.NativeAssets.Win-x86'
- 'Embedded.NativeAssets.Osx-x64'
- 'Embedded.NativeAssets.Linux-x64'
- 'Embedded.NativeAssets.AlpineLinux-x64'
steps:
- uses: actions/checkout@v2
- name: Caching
Expand All @@ -130,7 +36,7 @@ jobs:
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
with:
dotnet-version: '7.x'
dotnet-version: '8.x'
- name: Publish Nuget Package
uses: alirezanet/[email protected]
with:
Expand Down
45 changes: 0 additions & 45 deletions .github/workflows/linux-test.yml

This file was deleted.

43 changes: 0 additions & 43 deletions .github/workflows/osx-test.yml

This file was deleted.

123 changes: 123 additions & 0 deletions .github/workflows/unix-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: Unix Test

on:
push:
branches: [ master ]
paths:
- 'src/**.csproj'
- 'src/**.cs'
- 'src/**.so'
- 'src/**.dylib'
- '.github/workflows/unix-test.yml'

jobs:
ubuntu-test:
runs-on: ${{ matrix.target.runs-on }}
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_NOLOGO: 1
strategy:
matrix:
target:
- name: ubuntu20
runs-on: 'ubuntu-20.04'
shell: bash -e
rid: linux-x64
- name: ubuntu22
runs-on: 'ubuntu-22.04'
shell: bash -e
rid: linux-x64
- name: alpine
runs-on: 'ubuntu-latest'
shell: alpine.sh --root
rid: linux-musl-x64
- name: osx
runs-on: 'macos-latest'
shell: bash -e
rid: osx-x64
steps:
- uses: actions/checkout@v2
- name: Setup Shell
run: |
echo "#!/bin/sh
${{matrix.target.shell}} \"\$@\"" > shell.sh
cat shell.sh
chmod +x shell.sh
echo "$PWD" >> $GITHUB_PATH
- name: Setup Alpine OS
if: startsWith(matrix.target.name,'alpine')
uses: jirutka/setup-alpine@v1
id: alpine-target
with:
arch: x86_64
packages: >
sudo
bash
icu-libs
krb5-libs
libgcc
libintl
libssl1.1
libstdc++
zlib
grpc-plugins
shell-name: alpine.sh
- name: Caching
uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ matrix.target.name }}-${{ hashFiles('**/*.csproj') }} #hash of project files
restore-keys: |
${{ matrix.target.name }}-
- name: Setup Dotnet
run: |
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
./dotnet-install.sh --channel 3.1 --install-dir ~/.dotnet
./dotnet-install.sh --channel 5.0 --install-dir ~/.dotnet
./dotnet-install.sh --channel 6.0 --install-dir ~/.dotnet
./dotnet-install.sh --channel 7.0 --install-dir ~/.dotnet
./dotnet-install.sh --channel 8.0 --install-dir ~/.dotnet
echo "DOTNET_ROOT=~/.dotnet" >> $GITHUB_ENV
echo "$DOTNET_ROOT" >> $GITHUB_PATH
echo "$DOTNET_ROOT/tools" >> $GITHUB_PATH
shell: shell.sh {0}
- name: GrpcTool Fix on Alpine
if: startsWith(matrix.target.name,'alpine')
run: |
# grpc protoc wants glibc on Alpine builds. so we build at ubuntu instead. https://github.com/grpc/grpc/issues/18428#issuecomment-535041155
# wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
# wget https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r1/glibc-2.35-r1.apk
# apk add glibc-2.35-r1.apk
# https://github.com/grpc/grpc/issues/24188
echo 'PROTOBUF_PROTOC=/usr/bin/protoc' >> $GITHUB_ENV
echo 'GRPC_PROTOC_PLUGIN=/usr/bin/grpc_csharp_plugin' >> $GITHUB_ENV
shell: shell.sh {0}
# - name: Setup .NET Sdk
# if: startsWith(matrix.target.name,'alpine') == 'false'
# uses: actions/setup-dotnet@v3
# with:
# dotnet-version: |
# 3.1.x
# 5.x
# 6.x
# 7.x
# 8.x
- name: List SDKs
run: ~/.dotnet/dotnet --list-sdks
shell: shell.sh {0}
- name: Test .NET 8
run: ~/.dotnet/dotnet test -v quiet -f net8.0 -r ${{ matrix.target.rid }} --logger "console;verbosity=detailed" --nologo /nologo
shell: shell.sh {0}
- name: Test .NET 7
run: ~/.dotnet/dotnet test -v quiet -f net7.0 -r ${{ matrix.target.rid }} --logger "console;verbosity=detailed" --nologo /nologo
shell: shell.sh {0}
- name: Test .NET 6
run: ~/.dotnet/dotnet test -v quiet -f net6.0 -r ${{ matrix.target.rid }} --logger "console;verbosity=detailed" --nologo /nologo
shell: shell.sh {0}
- name: Test .NET 5
run: ~/.dotnet/dotnet test -v quiet -f net5.0 -r ${{ matrix.target.rid }} --logger "console;verbosity=detailed" --nologo /nologo
shell: shell.sh {0}
- name: Test .NET Core 3.1
run: ~/.dotnet/dotnet test -v quiet -f netcoreapp3.1 -r ${{ matrix.target.rid }} --logger "console;verbosity=detailed" --nologo /nologo
shell: shell.sh {0}
Loading

0 comments on commit c568fc8

Please sign in to comment.