Skip to content

panama-backend - basic integration with jextract #2166

panama-backend - basic integration with jextract

panama-backend - basic integration with jextract #2166

Workflow file for this run

name: Diplomat CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check rustfmt
run: cargo fmt --all -- --check
- name: Check clippy
run: cargo clippy --all-targets --all-features -- -D warnings
build-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose
msrv:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install MSRV Rust
run: rustup install 1.71 --profile minimal
- name: Check
run: cargo +1.71 check -p diplomat -p diplomat-runtime -p diplomat_core --verbose
gen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@v2
with:
tool: [email protected] # https://github.com/rust-diplomat/diplomat/issues/440
- name: Run regeneration
run: cargo make gen
- name: Test code is fresh
run: git add . && git diff --cached --exit-code
test-c:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Test C
run: cargo make test-c
check-c:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: clang, c11
run: cargo make check-c
env:
CC: clang
C_STD: c11
- name: gcc, c11
run: cargo make check-c
env:
CC: gcc
C_STD: c11
- name: gcc, c2x
run: cargo make check-c
env:
CC: gcc
C_STD: c2x
test-cpp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: clang
run: CXX=clang++-14 cargo make test-cpp
- name: gcc
run: CXX=g++ cargo make test-cpp
check-cpp:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: clang, c++17
run: cargo make check-cpp
env:
CXX: clang
CXX_STD: c++17
- name: clang, c++20
run: cargo make check-cpp
env:
CXX: clang
CXX_STD: c++20
- name: gcc, c++23
if: ${{ matrix.os != 'macos-latest' }}
run: cargo make check-cpp
env:
CXX: gcc
CXX_STD: c++23
test-js:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [
18.20.3, # supported until 2025-04-30
20.14.0, # supported until 2026-04-30
22.3.0, # current, supported until 2027-04-30
]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Load Rust toolchain for WASM.
run: rustup target add wasm32-unknown-unknown
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Test JS
run: cargo make test-js
test-demo:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [
18.20.3, # supported until 2025-04-30
20.14.0, # supported until 2026-04-30
22.3.0, # current, supported until 2027-04-30
]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Load Rust toolchain for WASM.
run: rustup target add wasm32-unknown-unknown
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Test Demo Gen
run: cargo make test-demo
test-dart:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Install Dart
uses: dart-lang/setup-dart@v1
with:
sdk: 3.4.0-204.0.dev
- name: Test Dart
run: cargo make test-dart
test-kotlin:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Set up JDK 17 for x64
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
architecture: x64
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
- name: Test Kotlin
run: cargo make test-kotlin
test-java:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Set up JDK 22 for x64
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'temurin'
architecture: x64
cache: maven
- name: Test Java
run: cargo make test-java
test-java-gen:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install cargo-make
uses: taiki-e/install-action@cargo-make
- name: Install curl
run: sudo apt-get update && sudo apt-get install -y curl
- name: Set up JDK 22 for x64
uses: actions/setup-java@v4
with:
java-version: '22'
distribution: 'temurin'
architecture: x64
cache: maven
- name: get jextract
run: curl -o /opt/jextract.tgz https://download.java.net/java/early_access/jextract/22/5/openjdk-22-jextract+5-33_linux-x64_bin.tar.gz
- name: config jextract
run: tar -xzf /opt/jextract.tgz -C /opt/
- name: Add jextract to path
run: echo "/opt/jextract-22/bin" >> $GITHUB_PATH
- name: Run generated java
run: cargo make gen-java