rust/.github/workflows/ci.yml
2020-10-06 13:35:39 +02:00

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