Merge pull request #107 from dmikusa/dependabot/cargo/clap-4.5.21 #214
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
# From: https://gist.github.com/PurpleBooth/84b3d7d6669f77d5a53801a258ed269a | |
'on': | |
push: | |
branches: | |
- '*' | |
pull_request: null | |
jobs: | |
check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/registry | |
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/git | |
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
test: | |
runs-on: '${{ matrix.os }}' | |
strategy: | |
matrix: | |
include: | |
- os: macos-latest | |
- os: ubuntu-latest | |
- os: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/registry | |
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/git | |
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: run | |
args: '-- -h' | |
lints: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/registry | |
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/git | |
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
components: 'rustfmt, clippy' | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: '--all -- --check' | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: '-- -D warnings' | |
version: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
with: | |
lfs: true | |
- run: git fetch --depth=1 origin +refs/tags/*:refs/tags/* | |
- id: get_previous_version | |
run: echo ::set-output name=PREVIOUS_VERSION::$(git describe --tags "$(git rev-list --tags --max-count=1)") | |
shell: bash | |
- id: semvers | |
uses: WyriHaximus/github-action-next-semvers@master | |
with: | |
version: '${{ steps.get_previous_version.outputs.PREVIOUS_VERSION }}' | |
- run: mkdir -p ./version | |
- if: "!contains(github.event.head_commit.message, 'BC BREAK') && !contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <[email protected]>')" | |
run: echo "$VERSION" >./version/version | |
env: | |
VERSION: ${{ steps.semvers.outputs.v_minor }} | |
- if: "contains(github.event.head_commit.message, 'Signed-off-by: dependabot-preview[bot] <[email protected]>')" | |
run: echo "$VERSION" >./version/version | |
env: | |
VERSION: ${{ steps.semvers.outputs.v_patch }} | |
- run: echo "$VERSION" > ./version/version | |
env: | |
VERSION: ${{ steps.semvers.outputs.v_major }} | |
if: "contains(github.event.head_commit.message, 'BC BREAK')" | |
- uses: actions/upload-artifact@master | |
with: | |
name: version | |
path: ./version/version | |
build: | |
needs: | |
- version | |
- lints | |
- test | |
- check | |
runs-on: '${{ matrix.os }}' | |
strategy: | |
matrix: | |
include: | |
- os: macos-latest | |
target: x86_64-apple-darwin | |
suffix: '' | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
suffix: '' | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
suffix: .exe | |
steps: | |
- uses: actions/checkout@master | |
with: | |
lfs: true | |
- id: get_repository_name | |
run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") | |
shell: bash | |
- uses: actions/download-artifact@master | |
with: | |
name: version | |
- id: get_version | |
run: 'echo ::set-output "name=VERSION::$(cat ./version)"' | |
shell: bash | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/registry | |
key: '${{ runner.os }}-cargo-registry-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: ~/.cargo/git | |
key: '${{ runner.os }}-cargo-index-${{ hashFiles(''**/Cargo.lock'') }}' | |
- uses: actions/cache@v1 | |
with: | |
path: target | |
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: install | |
args: 'toml-cli' | |
- shell: bash | |
env: | |
VERSION: '${{ steps.get_version.outputs.VERSION }}' | |
run: | | |
TEMP_FILE="$(mktemp)" | |
toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" | |
mv "$TEMP_FILE" Cargo.toml | |
- uses: actions-rs/cargo@v1 | |
env: | |
VERSION: '${{ steps.get_version.outputs.VERSION }}' | |
REPOSITORY_NAME: '${{ steps.get_repository_name.outputs.REPOSITORY_NAME }}' | |
with: | |
command: build | |
args: '--release' | |
- uses: actions/upload-artifact@master | |
with: | |
name: top-logs-${{ matrix.target }} | |
path: ./target/release/top-logs${{ matrix.suffix }} | |
release: | |
if: github.ref == 'refs/heads/main' | |
needs: | |
- build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
with: | |
lfs: true | |
- id: get_repository_name | |
run: echo ::set-output name=REPOSITORY_NAME::$(echo "$GITHUB_REPOSITORY" | awk -F / '{print $2}' | sed -e "s/:refs//") | |
shell: bash | |
- uses: actions/download-artifact@master | |
with: | |
name: version | |
- id: get_version | |
run: 'echo ::set-output name=VERSION::$(cat ./version)' | |
shell: bash | |
- uses: actions/download-artifact@master | |
with: | |
name: top-logs-x86_64-unknown-linux-gnu | |
path: top-logs-x86_64-unknown-linux-gnu | |
- uses: actions/download-artifact@master | |
with: | |
name: top-logs-x86_64-apple-darwin | |
path: top-logs-x86_64-apple-darwin | |
- uses: actions/download-artifact@master | |
with: | |
name: top-logs-x86_64-pc-windows-msvc | |
path: top-logs-x86_64-pc-windows-msvc | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: install | |
args: 'toml-cli' | |
- run: | | |
TEMP_FILE="$(mktemp)" | |
toml set Cargo.toml package.version "${VERSION:1}" > "$TEMP_FILE" | |
mv "$TEMP_FILE" Cargo.toml | |
ls -la /home/runner/work/top-logs/top-logs | |
shell: bash | |
env: | |
VERSION: '${{ steps.get_version.outputs.VERSION }}' | |
- uses: stefanzweifel/[email protected] | |
with: | |
commit_message: Bump cargo version | |
branch: ${{ github.head_ref }} | |
file_pattern: Cargo.toml | |
- id: create_release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | |
with: | |
tag_name: '${{ steps.get_version.outputs.VERSION }}' | |
release_name: 'Release ${{ steps.get_version.outputs.VERSION }}' | |
draft: false | |
prerelease: false | |
- uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | |
with: | |
upload_url: '${{ steps.create_release.outputs.upload_url }}' | |
asset_path: ./top-logs-x86_64-unknown-linux-gnu/top-logs | |
asset_name: top-logs-x86_64-unknown-linux-gnu | |
asset_content_type: application/octet-stream | |
- uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | |
with: | |
upload_url: '${{ steps.create_release.outputs.upload_url }}' | |
asset_path: ./top-logs-x86_64-apple-darwin/top-logs | |
asset_name: top-logs-x86_64-apple-darwin | |
asset_content_type: application/octet-stream | |
- uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | |
with: | |
upload_url: '${{ steps.create_release.outputs.upload_url }}' | |
asset_path: ./top-logs-x86_64-pc-windows-msvc/top-logs.exe | |
asset_name: top-logs-x86_64-pc-windows-msvc.exe | |
asset_content_type: application/octet-stream |