Skip to content

Commit

Permalink
Towards binary releases
Browse files Browse the repository at this point in the history
  • Loading branch information
nickray committed Nov 6, 2021
1 parent 9a41828 commit 53b4480
Show file tree
Hide file tree
Showing 3 changed files with 139 additions and 1 deletion.
115 changes: 115 additions & 0 deletions .github/workflows/build-release-binaries.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Build release binaries (and publish them if this is a tag)

on:
push:
branches:
- main
pull_request:

jobs:
binaries:
name: ${{ matrix.os }} for ${{ matrix.target }}
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
matrix:
target:
# - x86_64-unknown-linux-musl
- x86_64-unknown-linux-gnu
# - aarch64-unknown-linux-musl
- x86_64-pc-windows-msvc
- x86_64-apple-darwin
# - x86_64-unknown-freebsd
include:
# - os: ubuntu-latest
# target: x86_64-unknown-linux-musl
# artifact_name: target/x86_64-unknown-linux-musl/release/solo2
# release_name: x86_64-unknown-linux-musl
# cross: true
# cargo_flags: ""
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
artifact_name: target/x86_64-unknown-linux-gnu/release/solo2
release_name: x86_64-unknown-linux-gnu
cross: false
cargo_flags: ""
# - os: ubuntu-latest
# target: aarch64-unknown-linux-musl
# artifact_name: target/aarch64-unknown-linux-musl/release/solo2
# release_name: aarch64-unknown-linux-musl
# cross: true
# cargo_flags: ""
- os: windows-latest
target: x86_64-pc-windows-msvc
artifact_name: target/x86_64-pc-windows-msvc/release/solo2.exe
release_name: x86_64-pc-windows-msvc.exe
cross: false
cargo_flags: ""
- os: macos-latest
target: x86_64-apple-darwin
artifact_name: target/x86_64-apple-darwin/release/solo2
release_name: x86_64-apple-darwin
cross: false
cargo_flags: ""
# - os: ubuntu-latest
# target: x86_64-unknown-freebsd
# artifact_name: target/x86_64-unknown-freebsd/release/solo2
# release_name: x86_64-unknown-freebsd
# cross: true
# cargo_flags: ""

steps:
- name: Ubuntu dependencies
if: matrix.os == 'ubuntu-latest'
run: sudo apt-get update && sudo apt-get install -y libpcsclite-dev libudev-dev

- name: Checkout code
uses: actions/checkout@v2

- name: Setup Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.target }}

- name: cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --locked --target=${{ matrix.target }} ${{ matrix.cargo_flags }}
use-cross: ${{ matrix.cross }}

- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.target }}
path: ${{ matrix.artifact_name }}

###
# Below this line, steps will only be ran if a tag was pushed.
###

- name: Get tag name
id: tag_name
run: |
echo ::set-output name=current_version::${GITHUB_REF#refs/tags/v}
shell: bash
if: startsWith(github.ref, 'refs/tags/v')

- name: Get CHANGELOG.md entry
id: changelog_reader
uses: mindsers/changelog-reader-action@v1
with:
version: ${{ steps.tag_name.outputs.current_version }}
path: ./CHANGELOG.md
if: startsWith(github.ref, 'refs/tags/v')

- name: Publish
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: ${{ matrix.artifact_name }}
tag: ${{ github.ref }}
asset_name: solo2-$tag-${{ matrix.release_name }}
body: ${{ steps.changelog_reader.outputs.log_entry }}
if: startsWith(github.ref, 'refs/tags/v')
9 changes: 8 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
name: CI

on: [push, pull_request]
on:
push:
branches:
- main
pull_request:


jobs:
ci:
Expand Down Expand Up @@ -39,12 +44,14 @@ jobs:
command: test

- name: cargo fmt
if: matrix.os == 'ubuntu-latest'
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check

- name: cargo clippy
if: matrix.os == 'ubuntu-latest'
uses: actions-rs/cargo@v1
with:
command: clippy
Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.0.5] - 2021-11-06

### Added

- Display firmware version in human-readable format
- Start using a Changelog
- Add CI with cargo clippy/fmt
- Add binary releases following [svenstaro/miniserve](https://github.com/svenstaro/miniserve)

0 comments on commit 53b4480

Please sign in to comment.