name: Rust
on:
push:
branches:
- master
tags:
- latest
pull_request:
branches:
- master
tags:
- latest
jobs:
login:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Login
run: cargo login ${{ secrets.CARGO_REGISTRY_TOKEN }}
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Test
run: cargo test --workspace --verbose --color always
derive:
env:
CRATE: acme-derive
needs: [ login ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Publish
run: cargo publish --package $CRATE --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
macros:
env:
CRATE: acme-macros
needs: [ login ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Publish
run: cargo publish --package $CRATE --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
sdk:
env:
CRATE: acme-sdk
if: ${{ always() }}
needs: [ login, test, derive, macros ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Publish
run: cargo publish --package $CRATE --token ${{ secrets.CARGO_REGISTRY_TOKEN }} --all-features