Skip to content

..

.. #28

Workflow file for this run

name: ci
on:
pull_request: {}
push:
branches:
- main
#release:
# types: [published]
workflow_dispatch:
jobs:
# fmt:
# name: Format
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# override: true
# components: rustfmt
# - uses: actions-rs/cargo@v1
# with:
# command: fmt
# args: --all -- --check
# clippy:
# name: Clippy
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: actions-rs/toolchain@v1
# with:
# profile: minimal
# override: true
# components: clippy
# - uses: actions-rs/clippy-check@v1
# with:
# token: ${{ secrets.GITHUB_TOKEN }}
# args: --all-targets --all-features -- -D warnings
test:
name: Unitest (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
- uses: actions-rs/cargo@v1
env:
RUST_BACKTRACE: full
RUSTFLAGS: -D warnings
with:
command: test
args: --all --all-features
- name: "Ensure Cargo.lock is not modified"
run: git diff --exit-code Cargo.lock
build-release-linux:
name: Build release Executable (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
# - os: ubuntu-latest
# target: aarch64-unknown-linux-musl
env:
BINARY_EXTENSION: _Linux.x86_64
PATH_BINARY: ${{ github.workspace }}/target/${{ matrix.TARGET }}/release/L4AddonEnforcer${{ matrix.EXTENSION }}${{ endsWith(matrix.target, '-msvc') && '.exe' || '' }}
# OPENSSL_STATIC: 1
CC: clang
CXX: clang++
steps:
- uses: actions/checkout@v4
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
target: ${{ matrix.target }}
# - if: ${{ matrix.os == 'ubuntu-latest' }}
# run: sudo apt update -y && sudo apt install libfltk1.4-dev -y
- name: clang
run: export CC=clang CXX=clang++
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --profile release --bin L4AddonEnforcer --locked --target=${{ matrix.TARGET }}
- uses: actions/upload-artifact@v4
with:
name: L4AddonEnforcer${{ env.BINARY_EXTENSION }}
path: ${{ env.PATH_BINARY }}
- name: Evaluate shasum
run: echo -n $(shasum -ba 256 ${{ env.PATH_BINARY }} | cut -d " " -f 1) > ${{ env.PATH_BINARY }}.sha256
- uses: actions/upload-artifact@v4
with:
name: L4AddonEnforcer{{ env.BINARY_EXTENSION }}.sha256
path: ${{ env.PATH_BINARY }}.sha256
build-release-windows:
name: Build release Executable (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: windows-latest
target: x86_64-pc-windows-msvc
env:
BINARY_EXTENSION: ${{ endsWith(matrix.target, '-msvc') && '.exe' || '' }}
PATH_BINARY: ${{ github.workspace }}/target/${{ matrix.TARGET }}/release/L4AddonEnforcer${{ matrix.EXTENSION }}${{ endsWith(matrix.target, '-msvc') && '.exe' || '' }}
OPENSSL_STATIC: 1
steps:
- uses: actions/checkout@v4
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: clippy
target: ${{ matrix.target }}
- uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --profile release --bin L4AddonEnforcer --locked --target=${{ matrix.TARGET }}
- uses: actions/upload-artifact@v4
with:
name: L4AddonEnforcer_Win64${{ env.BINARY_EXTENSION }}
path: ${{ env.PATH_BINARY }}
- name: Evaluate shasum
run: echo -n $(shasum -ba 256 ${{ env.PATH_BINARY }} | cut -d " " -f 1) > ${{ env.PATH_BINARY }}.sha256
- uses: actions/upload-artifact@v4
with:
name: L4AddonEnforcer_Win64.sha256
path: ${{ env.PATH_BINARY }}.sha256
# - name: '[Optional] Publish Artifact'
# if: ${{ github.event_name == 'release' }}
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: ${{ env.PATH_BINARY }}
# asset_name: ${{ matrix.target }}-L4AddonEnforcer${{ env.BINARY_EXTENSION }}
# tag: ${{ github.ref }}
# overwrite: true
# - name: '[Optional] Publish Artifact (shasum)'
# if: ${{ github.event_name == 'release' }}
# uses: svenstaro/upload-release-action@v2
# with:
# repo_token: ${{ secrets.GITHUB_TOKEN }}
# file: ${{ env.PATH_BINARY }}.sha256
# asset_name: ${{ matrix.target }}-L4AddonEnforcer${{ env.BINARY_EXTENSION }}.sha256
# tag: ${{ github.ref }}
# overwrite: true