58 lines
1.5 KiB
YAML
58 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
# Run in PRs and for bors, but not on master.
|
|
branches:
|
|
- 'auto'
|
|
- 'try'
|
|
pull_request:
|
|
branches:
|
|
- 'master'
|
|
schedule:
|
|
# Use <https://crontab.guru> to conveniently edit cron schedule.
|
|
- cron: "0 7 * * *" # At 07:00 UTC every day.
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.os }}
|
|
env:
|
|
RUST_BACKTRACE: 1
|
|
strategy:
|
|
matrix:
|
|
build: [linux64, macos, win32]
|
|
include:
|
|
- build: linux64
|
|
os: ubuntu-latest
|
|
host_target: x86_64-unknown-linux-gnu
|
|
- build: macos
|
|
os: macos-latest
|
|
host_target: x86_64-apple-darwin
|
|
- build: win32
|
|
os: windows-latest
|
|
host_target: i686-pc-windows-msvc
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
# These jobs doesn't actually test anything, but they're only used to tell
|
|
# bors the build completed, as there is no practical way to detect when a
|
|
# workflow is successful listening to webhooks only.
|
|
#
|
|
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
|
|
end-success:
|
|
name: bors build finished
|
|
runs-on: ubuntu-latest
|
|
needs: [build]
|
|
if: github.event.pusher.name == 'bors' && success()
|
|
steps:
|
|
- name: mark the job as a success
|
|
run: exit 0
|
|
end-failure:
|
|
name: bors build finished
|
|
runs-on: ubuntu-latest
|
|
needs: [build]
|
|
if: github.event.pusher.name == 'bors' && (failure() || cancelled())
|
|
steps:
|
|
- name: mark the job as a failure
|
|
run: exit 1
|