Skip to content

Nightly Release

Nightly Release #402

name: Nightly Release
on:
workflow_dispatch:
schedule: # Every day at the 2 P.M. (UTC) we run a scheduled nightly build
- cron: "0 14 * * *"
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: build (${{ matrix.config.arch }})
strategy:
matrix:
config:
- os: windows-latest
arch: win-x64
- os: ubuntu-latest
arch: linux-x64
- os: macos-latest
arch: macos-x64
runs-on: ${{ matrix.config.os }}
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: rustfmt, clippy
override: true
- name: Install libudev for Linux (optional)
if: runner.os == 'Linux'
run: sudo apt-get install libudev-dev
- name: Build
run: cargo build --release
- name: Run help
run: cargo run --release -- --help
- name: Compress binary
run: |
mkdir -p release
cp target/release/wlink release/ || true
cp target/release/wlink.exe release/ || true
cp README.md release/
(cd release/ && tar -czvf ../wlink-${{ matrix.config.arch }}.tar.gz *)
shell: bash
- uses: actions/upload-artifact@v3
with:
name: wlink-binaries
path: wlink-${{ matrix.config.arch }}.tar.gz
build-win-x86:
name: build (windows-x86)
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
target: i686-pc-windows-msvc
components: rustfmt, clippy
override: true
- name: Build
run: cargo build --release --target i686-pc-windows-msvc
- name: Compress binary
run: |
mkdir -p release
cp target/i686-pc-windows-msvc/release/wlink.exe release/
cp README.md release/
(cd release/ && tar -czvf ../wlink-win-x86.tar.gz *)
- uses: actions/upload-artifact@v3
with:
name: wlink-binaries
path: wlink-win-x86.tar.gz
build-macos-arm64:
name: build (macos-arm64)
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
target: aarch64-apple-darwin
components: rustfmt, clippy
override: true
- name: Build
run: cargo build --release --target aarch64-apple-darwin
- name: Compress binary
run: |
mkdir -p release
cp target/aarch64-apple-darwin/release/wlink release/
cp README.md release/
(cd release/ && tar -czvf ../wlink-macos-arm64.tar.gz *)
- uses: actions/upload-artifact@v3
with:
name: wlink-binaries
path: wlink-macos-arm64.tar.gz
release:
needs: [build, build-macos-arm64, build-win-x86]
runs-on: ubuntu-22.04
steps:
- name: Download Artifacts
uses: actions/download-artifact@v3
with:
name: wlink-binaries
path: ./
- name: List files
run: ls -R ./
shell: bash
- name: Update Nightly Release
uses: andelf/nightly-release@main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: nightly
name: "wlink Nightly Release $$"
draft: false
prerelease: false
body: |
This is a nightly binary release of the wlink command line tool.
For Windows users, please use the x86 version since it has the Windows driver support.
files: |
wlink-*.tar.gz