Skip to content

chore(flake): update nixpkgs #59

chore(flake): update nixpkgs

chore(flake): update nixpkgs #59

Workflow file for this run

name: CI
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
tags:
- v*
jobs:
build-linux:
strategy:
matrix:
platform:
- name: x86_64
target: amd64
runs-on: ubuntu-latest
- name: aarch64
target: arm64
runs-on: [self-hosted, linux, ARM64]
runs-on: ${{ matrix.platform.runs-on }}
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: cachix/install-nix-action@v22
with:
github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix build
- name: Upload ${{ matrix.platform.name }}
uses: actions/upload-artifact@v2
with:
name: bandsnatch-linux-${{ matrix.platform.name }}
path: ./result/bin/bandsnatch
build-macos:
runs-on: macos-11
strategy:
matrix:
target:
- x86_64
- aarch64
steps:
- uses: actions/checkout@v2
- name: Install target
uses: actions-rs/toolchain@v1
with:
toolchain: stable-apple-darwin
target: ${{ matrix.target }}-apple-darwin
override: true
profile: minimal
- uses: Swatinem/rust-cache@v2
with:
key: ${{ matrix.target }}
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target ${{ matrix.target }}-apple-darwin
- uses: actions/upload-artifact@v2
with:
name: bandsnatch-macos-${{ matrix.target }}
path: "target/${{ matrix.target }}-apple-darwin/release/bandsnatch"
build-windows:
runs-on: windows-2022
steps:
- uses: actions/checkout@v2
- name: Install target
uses: actions-rs/toolchain@v1
with:
toolchain: stable-x86_64-pc-windows-msvc
target: x86_64-pc-windows-msvc
override: true
profile: minimal
- uses: Swatinem/rust-cache@v2
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-pc-windows-msvc
- uses: actions/upload-artifact@v2
with:
name: "bandsnatch-windows-x86_64"
path: "target/x86_64-pc-windows-msvc/release/bandsnatch.exe"
# TODO: clippy lints & rustfmt
create-release:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs:
- build-linux
- build-macos
- build-windows
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- name: Rename files
run: |
mkdir out && cd out
declare -a arr=(
"windows-x86_64"
"macos-x86_64"
"macos-aarch64"
"linux-x86_64"
"linux-aarch64"
)
for target in "${arr[@]}"
do
if [[ "$target" == *windows* ]]; then
src="../bandsnatch-$target/bandsnatch.exe"
filename="bandsnatch-$target.exe"
else
src="../bandsnatch-$target/bandsnatch"
filename="bandsnatch-$target"
fi
cp $src $filename
sha256sum "$filename" >> "checksums.txt"
done
- name: Create draft release
uses: softprops/action-gh-release@v1
with:
body: Update the description for the release!
draft: true
files: ./out/*
- name: Update Homebrew tap
uses: mislav/bump-homebrew-formula-action@v2
with:
formula-name: bandsnatch
homebrew-tap: Ovyerus/homebrew-tap
env:
COMMITTER_TOKEN: ${{ secrets.TAP_COMMITTER_TOKEN }}