name: CD
on:
push:
tags:
- '*' workflow_dispatch:
permissions: {}
jobs:
cargo_checks:
name: Cargo Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
components: rustfmt, clippy
- name: Check formatting
run: cargo fmt --check
- name: Clippy
run: cargo clippy --tests -- -D warnings
- name: Run tests
run: cargo test --features chrono,uuid,rust_decimal,time
test_examples:
name: Test Examples
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
example:
- bootstrap
- column_index_type
- column_order_and_visibility
- custom_renderers_svg
- custom_row_renderer
- editable
- generic
- getter
- i18n
- paginated_rest_datasource
- pagination
- selectable
- serverfn_sqlx
- simple
- tailwind
steps:
- uses: actions/checkout@v7
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Build example ${{ matrix.example }}
run: |
cd ${{ github.workspace }}/examples/${{ matrix.example }}/
cargo build
shell: bash
publish:
name: Publish
runs-on: ubuntu-latest
needs: [ cargo_checks, test_examples ]
steps:
- uses: actions/checkout@v7
- name: Setup Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: nightly
- name: Publish crate leptos-struct-table
uses: katyo/publish-crates@v2
with:
registry-token: ${{ secrets.CRATES_TOKEN }}
- uses: CSchoel/release-notes-from-changelog@v1
- name: Create Release using GitHub CLI
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: >
gh release create
-d
-F RELEASE.md
-t "Version $RELEASE_VERSION"
${GITHUB_REF#refs/*/}