Skip to content

MacOS building

MacOS building #34

Workflow file for this run

name: Rust
on:
pull_request:
push:
branches:
- 'master'
- 'macos-testing'
tags:
- '*'
# The colors mess with the problem matcher.
# env:
# CARGO_TERM_COLOR: always
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
label:
- macOS aarch64
- macOS x86_64
- macOS x86_64-v3
include:
- label: macOS aarch64
target: aarch64-apple-darwin
rust_flags: -L ~/Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/Frameworks
os: macOS-latest
features: auto-splitting
cross: skip
install_target: true
- label: macOS x86_64
target: x86_64-apple-darwin
rust_flags: -L ~/Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/Frameworks
os: macOS-latest
features: auto-splitting
cross: skip
- label: macOS x86_64-v3
target: x86_64-apple-darwin
target_rename: x86_64_v3-apple-darwin
rust_flags: -C target-cpu=x86-64-v3 -L ~/Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/MacOS -L /Applications/OBS.app/Contents/Frameworks
os: macOS-latest
features: auto-splitting
cross: skip
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
rust-version: ${{ matrix.toolchain || 'stable' }}
- name: Install Target
if: matrix.install_target != ''
run: rustup target add ${{ matrix.target }}
- name: Install OBS
if: matrix.os == 'macOS-latest'
run: brew install --cask obs
- name: Download cross
if: matrix.cross == ''
uses: robinraju/[email protected]
with:
repository: "cross-rs/cross"
latest: true
fileName: "cross-x86_64-unknown-linux-gnu.tar.gz"
out-file-path: "/home/runner/.cargo/bin"
- name: Install cross
if: matrix.cross == ''
run: |
cd ~/.cargo/bin
tar -xzf cross-x86_64-unknown-linux-gnu.tar.gz
- name: Build Shared Library
run: sh .github/workflows/build_shared.sh
env:
TARGET: ${{ matrix.target }}
SKIP_CROSS: ${{ matrix.cross }}
IS_DEPLOY: ${{ startsWith(github.ref, 'refs/tags/') && (matrix.release_anyway != '' || !(startsWith(matrix.toolchain, 'nightly') || startsWith(matrix.toolchain, 'beta'))) }}
FEATURES: ${{ matrix.features }}
OS_NAME: ${{ matrix.os }}
RUSTFLAGS: ${{ matrix.rust_flags }}
- name: Prepare Release
if: startsWith(github.ref, 'refs/tags/') && matrix.release == ''
shell: bash
run: .github/workflows/before_deploy.sh
env:
OS_NAME: ${{ matrix.os }}
TARGET: ${{ matrix.target }}
RELEASE_TARGET: ${{ matrix.target_rename || matrix.target }}
PLUGIN_BITS: ${{ matrix.bits || '64bit' }}
- name: Release
if: startsWith(github.ref, 'refs/tags/') && matrix.release == ''
uses: softprops/action-gh-release@v1
with:
files: obs-livesplit-one-*.*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
clippy:
runs-on: ubuntu-latest
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
components: clippy
- name: Run Clippy
run: cargo clippy --all-features
format:
runs-on: ubuntu-latest
steps:
- name: Checkout Commit
uses: actions/checkout@v3
- name: Install Rust
uses: hecrj/setup-rust-action@v1
with:
components: rustfmt
- name: Run cargo fmt
run: cargo fmt -- --check || true