Skip to content

Commit

Permalink
Add CI
Browse files Browse the repository at this point in the history
  • Loading branch information
theirix committed Aug 17, 2023
1 parent 6fb97a2 commit 6068d5e
Show file tree
Hide file tree
Showing 2 changed files with 172 additions and 0 deletions.
75 changes: 75 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
#
on:
push:
branches:
- "*"
pull_request:

name: Build

jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Run cargo check
uses: actions-rs/cargo@v1
with:
command: check

test:
name: Test Suite
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Run cargo test
uses: actions-rs/cargo@v1
with:
command: test

lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy

- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check

- name: Run cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
97 changes: 97 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Publish

on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'

jobs:
build-info:
name: Build info
runs-on: ubuntu-latest
outputs:
target-prefix: ${{ steps.setVariables.outputs.output }}
steps:
- id: setVariables
run: |
echo 'output=unneeded' >> $GITHUB_OUTPUT
artifacts:
name: Publish target ${{ matrix.target }}
needs: [ build-info ]
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: ubuntu-latest
target: x86_64-unknown-linux-musl

steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
target: ${{ matrix.target }}

- name: Install dependencies
if: matrix.target == 'x86_64-unknown-linux-musl'
run: sudo apt-get install musl-tools libssl-dev

- name: Build artifact
run: cargo build --release --target=${{ matrix.target }}

- name: Compress artifact
shell: bash
run: |
cp "target/${{ matrix.target }}/release/${{ needs.build-info.outputs.target-prefix}}" \
"${{ needs.build-info.outputs.target-prefix}}-${{ github.ref_name }}-${{ matrix.target }}"
zip "${{ needs.build-info.outputs.target-prefix}}-${{ github.ref_name }}-${{ matrix.target }}.zip" \
"${{ needs.build-info.outputs.target-prefix}}-${{ github.ref_name }}-${{ matrix.target }}"
- name: Upload artifact to release
uses: softprops/action-gh-release@v1
with:
files: ${{ needs.build-info.outputs.target-prefix}}*.zip

changelog:
name: Changelog
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Make release notes from changelog
uses: anton-yurchenko/git-release@v4.2.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

publish:
name: Publish to crates.io
runs-on: ubuntu-latest
# Disable publishing
if: ${{ false }}
steps:
- name: Checkout sources
uses: actions/checkout@v3

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true

- name: Run cargo publish
uses: actions-rs/cargo@v1
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
with:
command: publish

0 comments on commit 6068d5e

Please sign in to comment.