Merge pull request #92 from orf/dependabot/github_actions/dependencie… #197
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: | |
tags: | |
- 'html-query-v*' | |
branches: | |
- main | |
pull_request: | |
name: CI | |
permissions: | |
contents: write | |
checks: write | |
jobs: | |
build_and_test: | |
name: Rust project | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
include: | |
- os: ubuntu-latest | |
bin: hq | |
name: hq-Linux-x86_64.tar.gz | |
- os: macOS-latest | |
bin: hq | |
name: hq-Darwin-x86_64.tar.gz | |
- os: windows-latest | |
bin: hq.exe | |
name: hq-Windows-x86_64.zip | |
env: | |
RUST_BACKTRACE: "1" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
- name: Run | |
uses: actions-rs/cargo@v1 | |
with: | |
command: run | |
args: --bin=hq -- --help | |
- name: Build release | |
if: startsWith(github.ref, 'refs/tags/') | |
uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --release | |
- name: Package | |
if: startsWith(github.ref, 'refs/tags/') | |
shell: bash | |
run: | | |
strip target/release/${{ matrix.bin }} | |
cd target/release | |
if [[ "${{ matrix.os }}" == "windows-latest" ]] | |
then | |
7z a ../../${{ matrix.name }} ${{ matrix.bin }} | |
else | |
tar czvf ../../${{ matrix.name }} ${{ matrix.bin }} | |
fi | |
cd - | |
- name: Publish | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
draft: false | |
files: 'hq*' | |
test_alpine: | |
name: Test in Alpine | |
runs-on: ubuntu-latest | |
container: | |
image: alpine:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: apk add libgcc gcc musl-dev | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run tests | |
uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
checks: | |
name: Checks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v4 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
components: rustfmt, clippy | |
- uses: Swatinem/rust-cache@v2 | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
if: success() || failure() | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
if: success() || failure() | |
with: | |
command: check | |
- uses: actions-rs/clippy-check@v1 | |
if: success() || failure() | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
args: --all-features |