Files
blog_os/.github/workflows/build-code.yml
2019-11-22 15:53:24 +01:00

77 lines
1.7 KiB
YAML

name: Build Code
on:
push:
branches:
- '*'
- '!staging.tmp'
tags:
- '*'
schedule:
- cron: '40 3 * * *' # every day at 3:40
pull_request:
jobs:
test:
name: "Test"
strategy:
matrix:
platform: [
ubuntu-latest,
macos-latest,
windows-latest
]
runs-on: ${{ matrix.platform }}
timeout-minutes: 15
steps:
- name: "Checkout Repository"
uses: actions/checkout@v1
- name: Install Rustup
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly
echo ::add-path::$HOME/.cargo/bin
if: runner.os == 'macOS'
- name: "Print Rust Version"
run: |
rustc -Vv
cargo -Vv
- name: "Add thumbv7em-none-eabihf Target"
run: rustup target add thumbv7em-none-eabihf
- name: "Build for thumbv7em-none-eabihf"
run: cargo build --target thumbv7em-none-eabihf
- name: "Build for Linux"
if: runner.os == 'Linux'
run: cargo rustc -- -C link-arg=-nostartfiles
- name: "Build for macOS"
if: runner.os == 'macOS'
run: cargo rustc -- -C link-args="-e __start -static -nostartfiles"
- name: "Build for Windows"
if: runner.os == 'Windows'
run: cargo rustc -- -C link-args="/ENTRY:_start /SUBSYSTEM:console"
check_formatting:
name: "Check Formatting"
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v1
- name: "Use the latest Rust nightly with rustfmt"
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
components: rustfmt
override: true
- run: cargo fmt -- --check