Skip to content

feat: GenesisObject improvements #3625

feat: GenesisObject improvements

feat: GenesisObject improvements #3625

Workflow file for this run

name: Bindings
on:
push:
branches: [develop]
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
concurrency:
group: bindings-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/develop' }}
jobs:
diff:
if: (!github.event.pull_request.draft || contains(github.event.pull_request.body, '[run-ci]'))
runs-on: ubuntu-latest
outputs:
isBindings: ${{ steps.diff.outputs.isBindings }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Detect Changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: diff
with:
filters: |
isBindings:
- ".github/workflows/bindings.yml"
- "bindings/**"
- "crates/iota-sdk-ffi/**"
csharp:
if: (!cancelled() && needs.diff.outputs.isBindings == 'true')
needs: diff
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install uniffi-bindgen-cs
run: cargo install uniffi-bindgen-cs --git https://github.com/NordSecurity/uniffi-bindgen-cs --tag v0.10.0+v0.29.4
- name: Setup .NET
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
with:
dotnet-version: "8.0.x"
- name: Build the bindings
run: make csharp
- name: Checks for uncommitted changes
run: git diff --exit-code
- name: Verify Examples.sln is up-to-date
run: |
cd bindings/csharp/examples
missing=0
while IFS= read -r csproj; do
name=$(basename "$csproj")
if ! grep -q "$name" Examples.sln; then
echo "Missing from Examples.sln: $csproj"
missing=1
fi
done < <(find . -name "*.csproj" -not -path "*/Release/*")
exit $missing
- name: Check format of the examples
run: make csharp-examples-format-check
- uses: ./.github/actions/start-local-network
- name: Run the examples
run: make csharp-examples
# Release example requires IotaSdk package to be published first
# - name: Run the release example
# run: make csharp-release-example
go:
if: (!cancelled() && needs.diff.outputs.isBindings == 'true')
needs: diff
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Install uniffi-bindgen-go
run: make install-uniffi-bindgen-go
- name: Build the bindings
run: make go
- name: Checks for uncommitted changes
run: git diff --exit-code
- name: Check format of the examples
run: make go-examples-format-check
- uses: ./.github/actions/start-local-network
- name: Run the examples
run: make go-examples
- name: Run the release example
run: make go-release-example
kotlin:
if: (!cancelled() && needs.diff.outputs.isBindings == 'true')
needs: diff
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Build the bindings
run: make kotlin
- name: Checks for uncommitted changes
run: git diff --exit-code
- uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0
with:
distribution: "oracle"
java-version: "21"
- name: Check format of the examples
run: make kotlin-examples-format-check
- uses: ./.github/actions/start-local-network
- name: Run the examples
run: make kotlin-examples
- name: Run the release example
run: make kotlin-release-example
python:
if: (!cancelled() && needs.diff.outputs.isBindings == 'true')
needs: diff
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Build the bindings
run: make python
- name: Checks for uncommitted changes
run: git diff --exit-code
- name: Check format of the examples
run: |
pip install yapf
make python-examples-format-check
- uses: ./.github/actions/start-local-network
- name: Run the examples
run: make python-examples
- name: Run the release example
run: make python-release-example
swift:
if: (!cancelled() && needs.diff.outputs.isBindings == 'true')
needs: diff
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Build the bindings
run: make swift
- name: Checks for uncommitted changes
run: git diff --exit-code
- name: Install Swift
uses: swift-actions/setup-swift@7ca6abe6b3b0e8b5421b88be48feee39cbf52c6a # v2.4.0
with:
swift-version: "6.0"
- name: Check format of the examples
run: make swift-examples-format-check
- uses: ./.github/actions/start-local-network
- name: Run the examples
run: make swift-examples
# Release example requires iota-sdk-swift package to be published first
# - name: Run the release example
# run: make swift-release-example