HomeDisk/.github/workflows/ci.yml

100 lines
2.4 KiB
YAML

name: Build release binaries (and publish them if this is a tag)
on:
push:
# pull_request:
workflow_dispatch:
env:
CARGO_TERM_COLOR: always
jobs:
build-release:
uses: ./.github/workflows/build-releases.yml
clippy-and-tests:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
rust: [stable, nightly]
name: clippy and tests ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Rust toolchain
id: rust-toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
components: clippy
- name: Cache
uses: actions/cache@v3
id: cache
with:
path: |
~/.cargo/registry/cache/
target/
key: clippy-test-${{ runner.os }}-${{ matrix.rust }}-${{ steps.rust-toolchain.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.lock') }}
- name: cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --no-deps -- -D warnings
- name: cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --all-features
upload-release:
runs-on: ubuntu-latest
needs: [build-release]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: ./
- name: Move artifacts
run: |
mkdir release
mv release-*/* release/
- name: Get tag name
id: tag_name
run: |
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
- name: Upload release files
uses: softprops/action-gh-release@cd28b0f5ee8571b76cfdaa62a30d51d752317477 # 0.1.14
with:
token: ${{ secrets.GITHUB_TOKEN }}
prerelease: false
tag_name: ${{ github.ref }}
draft: true
fail_on_unmatched_files: true
name: ${{ github.ref }} Release
body: |
<!-- Write summary here -->
---
## Features
## Changes
## Bug Fixes
## Internal Changes
files: |
./release/*