name: Rust CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
LIBGETARGV_LIB_DIR: /usr/local/lib/
jobs:
build:
runs-on: macos-latest
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v6
with:
repository: getargv/getargv
path: getargv
token: ${{ secrets.GETARGV_READ }}
- name: Build libgetargv
run: make dylib
working-directory: getargv
- name: Install libgetargv
run: sudo make install_dylib
working-directory: getargv
- name: setup-rust
run: rustup update stable
- uses: actions/checkout@v6
with:
path: getargv-sys
- name: Build
run: cargo build --verbose
working-directory: getargv-sys
- name: Run tests
run: cargo test --verbose
working-directory: getargv-sys
- name: Dryrun Publish Crate
run: cargo publish --dry-run
working-directory: getargv-sys
- name: Bump version
run: |
cargo install cargo-bump
cargo bump patch --git-tag
git push --follow-tags
working-directory: getargv-sys
- uses: rust-lang/crates-io-auth-action@v1
id: auth
- run: cargo publish
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
working-directory: getargv-sys