Update deps #96
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
name: CI | |
env: | |
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse | |
jobs: | |
build_and_test: | |
name: Build and Test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
channel: 1.68.0 | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
channel: stable | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
channel: beta | |
- os: ubuntu-22.04 | |
target: x86_64-unknown-linux-gnu | |
channel: nightly | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust Toolchain | |
run: | | |
rustup default "$TOOLCHAIN" | |
rustup update "$TOOLCHAIN" | |
env: | |
TOOLCHAIN: ${{ matrix.channel }}-${{ matrix.target }} | |
- name: Build and Test (Debug, No Default Features) | |
run: cargo test --no-default-features | |
- name: Build and Test (Debug, enable_unstable_features_that_may_break_with_minor_version_bumps) | |
run: cargo test --no-default-features --features enable_unstable_features_that_may_break_with_minor_version_bumps | |
- name: Build and Test (Debug, serde) | |
run: cargo test --no-default-features --features serde | |
- name: Build and Test (Release, All Features) | |
run: cargo test --release --all-features | |
- name: Build and Test (Minimal Versions, All Features) | |
if: matrix.channel == 'nightly' | |
run: cargo test --all-features -Z minimal-versions | |
lint: | |
name: Lint | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Check for broken intra-doc links | |
run: cargo doc --all-features --document-private-items --no-deps | |
ci_succeeded: | |
name: Build and Test Succeeded | |
if: always() | |
needs: [build_and_test, lint] | |
runs-on: ubuntu-22.04 | |
outputs: | |
release: ${{ steps.release_check.outputs.release }} | |
tag_name: ${{ steps.release_check.outputs.tag_name }} | |
steps: | |
- name: Fail if Any Previous Job Failed | |
if: contains(needs.*.result, 'failure') | |
run: exit 1 | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Check if Release Needed | |
id: release_check | |
run: | | |
set -euo pipefail | |
TAG_NAME="v$(cargo metadata --no-deps --format-version=1 | jq -er '.packages[] | select(.name=="plist") | .version')" | |
echo "tag_name=$TAG_NAME" >> "$GITHUB_OUTPUT" | |
if git ls-remote --exit-code origin "refs/tags/$TAG_NAME" | |
then | |
echo "release=false" >> "$GITHUB_OUTPUT" | |
else | |
echo "release=true" >> "$GITHUB_OUTPUT" | |
fi | |
release: | |
name: Release | |
needs: ci_succeeded | |
if: github.ref == 'refs/heads/master' && needs.ci_succeeded.outputs.release == 'true' | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install cargo-semver-checks | |
run: cargo install cargo-semver-checks --locked | |
- name: Run cargo-semver-checks | |
run: cargo semver-checks check-release | |
- name: Publish Crate | |
run: | | |
cargo publish --token "$CRATES_IO_TOKEN" | |
env: | |
CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }} | |
- name: Create GitHub Release | |
uses: actions/create-release@latest | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ needs.ci_succeeded.outputs.tag_name }} | |
release_name: ${{ needs.ci_succeeded.outputs.tag_name }} | |
draft: false | |
prerelease: false |