Files
shorebird-updater/.github/actions/rust_crate/action.yaml
T
2023-09-08 11:19:00 -07:00

46 lines
1.5 KiB
YAML

name: Rust Crate Workflow
description: Build and test your Rust crate
inputs:
codecov_token:
required: true
description: The codecov token used to upload coverage reports.
working_directory:
required: false
default: "."
description: The working directory for this workflow.
runs:
using: "composite"
steps:
- name: Build
working-directory: ${{ inputs.working_directory }}
shell: ${{ inputs.shell }}
run: cargo build --verbose
- name: Test
working-directory: ${{ inputs.working_directory }}
shell: ${{ inputs.shell }}
run: |
cargo install cargo-llvm-cov
cargo llvm-cov --lcov --output-path lcov.info
# Per https://stackoverflow.com/questions/73402042/github-action-expressions-split-string
- name: Split package name
env:
PACKAGE_PATH: ${{ inputs.working_directory}}
id: split
shell: ${{ inputs.shell }}
run: echo "package_name=${PACKAGE_PATH##*/}" >> $GITHUB_OUTPUT
- name: Upload Coverage
uses: codecov/codecov-action@v3
with:
# We use Codecov's carryforward flags to allow our PR testing to only
# run affected packages, but also allow our coverage information from
# past runs to "carry forward" on a "per flag" basis. We tag coverage
# information with "flags" explaining what directory the coverage is from.
# https://docs.codecov.com/docs/carryforward-flags
flags: ${{ steps.split.outputs.package_name }}
token: ${{ inputs.codecov_token }}