Skip to content
This repository has been archived by the owner on Jun 13, 2024. It is now read-only.

build(deps): bump rustls from 0.21.9 to 0.21.11 in /packages/rust-core #145

build(deps): bump rustls from 0.21.9 to 0.21.11 in /packages/rust-core

build(deps): bump rustls from 0.21.9 to 0.21.11 in /packages/rust-core #145

name: CSharp Bindings Build
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
permissions:
actions: read
contents: write
id-token: write
security-events: write
on:
workflow_dispatch:
pull_request:
paths:
- 'packages/rust-core/common/**'
- 'packages/rust-core/charp/**'
- 'packages/rust-core/Cargo.toml'
- 'packages/rust-core/Cargo.lock'
- .github/workflows/csharp-bindings-build.yml
- '.github/workflows/codeql.yml'
push:
branches: [main]
paths:
- 'packages/rust-core/common/**'
- 'packages/rust-core/charp/**'
- 'packages/rust-core/Cargo.toml'
- 'packages/rust-core/Cargo.lock'
- .github/workflows/csharp-bindings-build.yml
- '.github/workflows/codeql.yml'
jobs:
codeql:
name: csharp-bindings-ci-codeql
uses: ./.github/workflows/codeql.yml
with:
language: csharp
working-directory: packages/rust-core/csharp
build:
strategy:
fail-fast: false
matrix:
settings:
- host: macos-latest
target: x86_64-apple-darwin
artifact: libflappy_csharp_bindings.dylib
build: cargo build -r --target x86_64-apple-darwin
- host: macos-latest
target: aarch64-apple-darwin
artifact: libflappy_csharp_bindings.dylib
build: cargo build -r --target aarch64-apple-darwin
- host: ubuntu-latest
target: x86_64-pc-windows-gnu
command: sudo apt-get install -y gcc-mingw-w64-x86-64-win32 && cargo install cargo-xwin
artifact: flappy_csharp_bindings.dll
build: cargo build -r --target x86_64-pc-windows-gnu
- host: ubuntu-latest
target: x86_64-unknown-linux-gnu
artifact: libflappy_csharp_bindings.so
build: cargo build -r --target x86_64-unknown-linux-gnu
- host: ubuntu-latest
target: x86_64-unknown-linux-musl
artifact: libflappy_csharp_bindings.so
build: cargo build -r --target x86_64-unknown-linux-musl
- host: ubuntu-latest
target: aarch64-unknown-linux-gnu
artifact: libflappy_csharp_bindings.so
build: cargo build -r --target aarch64-unknown-linux-gnu
# - host: ubuntu-latest
# target: aarch64-unknown-linux-musl
# artifact: libflappy_csharp_bindings.so
# build: cargo build -r --target aarch64-unknow-linux-musl
name: csharp-bindings-publish-build
runs-on: ${{ matrix.settings.host }}
steps:
- uses: actions/checkout@v4
- name: Run command ${{matrix.settings.command}}
if: ${{matrix.settings.command}}
run: ${{matrix.settings.command}}
- name: Install
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.settings.target }}
- name: Install cross-compilation tools
uses: taiki-e/setup-cross-toolchain-action@v1
with:
target: ${{matrix.settings.target}}
- name: Cache cargo
uses: actions/cache@v3
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
.cargo-cache
target/
key: ${{ matrix.settings.target }}-cargo-${{ matrix.settings.host }}
- name: Build
run: ${{ matrix.settings.build }}
shell: bash
working-directory: packages/rust-core/csharp
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: bindings-${{ matrix.settings.target }}
path: '**/${{ matrix.settings.artifact }}'
if-no-files-found: error
package-nuget:
if: ${{ github.ref == 'refs/heads/main' }}
needs: build
runs-on: ubuntu-latest
environment:
name: Nuget
name: csharp-bindings-publish-release
steps:
- uses: actions/checkout@v4
- uses: nuget/setup-nuget@v1
with:
nuget-api-key: ${{ secrets.GITHUB_TOKEN }}
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-x86_64-apple-darwin
path: ~/artifacts/
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-aarch64-unknown-linux-gnu
path: ~/artifacts/
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-aarch64-apple-darwin
path: ~/artifacts/
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-x86_64-unknown-linux-musl
path: ~/artifacts/
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-x86_64-unknown-linux-gnu
path: ~/artifacts/
- name: download artifacts
uses: actions/download-artifact@v3
with:
name: bindings-x86_64-pc-windows-gnu
path: ~/artifacts/
- name: make runtimes dir
run: |
find ~/artifacts
dcp() {
local target=$2
local src=$1
mkdir -p ~/nuget/runtimes/$target/native
cp -v ~/artifacts/packages/rust-core/target/$src ~/nuget/runtimes/$target/native/
}
mkdir -p ~/nuget
dcp x86_64-pc-windows-gnu/release/flappy_csharp_bindings.dll win-x64
dcp aarch64-apple-darwin/release/libflappy_csharp_bindings.dylib osx-arm64
dcp x86_64-apple-darwin/release/libflappy_csharp_bindings.dylib osx-x64
dcp x86_64-unknown-linux-gnu/release/libflappy_csharp_bindings.so linux-x64
dcp aarch64-unknown-linux-gnu/release/libflappy_csharp_bindings.so linux-arm64
dcp x86_64-unknown-linux-musl/release/libflappy_csharp_bindings.so linux-musl-x64
#cp packages/rust-core/csharp/tools/Pleisto.Flappy.Native.csproj ~/nuget
tar cvf ~/nuget.tar ~/nuget
gzip -9 ~/nuget.tar
- name: build nupkg
run: |
cd packages/rust-core/csharp/
cp -vr ~/nuget/runtimes ./runtimes
dotnet build -c Release
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: bindings
path: |
packages/csharp/**/*.nupkg
~/nuget.tar.gz
if-no-files-found: error
- name: publish nuget pkg
run: |
find -type f | grep nupkg$ | grep -v 'symbols\.nupkg$' | while read line; do
echo "Pulish: $line"
nuget push $line \
-Source https://api.nuget.org/v3/index.json \
-ApiKey ${{ secrets.NUGET_TOKEN }} \
-SkipDuplicate
done