gitui/.github/workflows/ci.yml

78 lines
1.8 KiB
YAML
Raw Normal View History

2020-03-23 16:59:46 +03:00
name: CI
2020-03-23 16:53:38 +03:00
on:
2020-03-23 20:39:16 +03:00
schedule:
- cron: '0 2 * * *' # run at 2 AM UTC
2020-03-23 16:53:38 +03:00
push:
2020-03-30 20:07:08 +03:00
branches: [ '*' ]
2020-03-23 16:53:38 +03:00
pull_request:
branches: [ master ]
jobs:
build:
2020-03-23 20:33:24 +03:00
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
2020-04-15 17:36:40 +03:00
rust: [stable]
2020-03-23 16:53:38 +03:00
2020-03-23 20:33:24 +03:00
runs-on: ${{ matrix.os }}
2020-03-23 20:39:16 +03:00
2020-03-23 16:53:38 +03:00
steps:
2020-03-27 02:27:07 +03:00
- uses: actions/checkout@v2
2020-04-15 17:36:40 +03:00
- name: Build Debug
run: cargo build
2020-03-23 16:53:38 +03:00
- name: Run tests
2020-04-13 11:23:55 +03:00
run: make test
2020-03-27 02:16:57 +03:00
- name: Run clippy
run: |
rustup component add clippy
make clippy
2020-04-15 17:36:40 +03:00
- name: Build Release
run: make build-release
2020-04-05 16:29:41 +03:00
build-linux-musl:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup MUSL
run: |
rustup target add x86_64-unknown-linux-musl
sudo apt-get -qq install musl-tools
- name: Build Debug
run: cargo build --target=x86_64-unknown-linux-musl
- name: Build Release
run: |
cargo build --release --target=x86_64-unknown-linux-musl
2020-04-05 16:29:41 +03:00
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update stable && rustup default stable && rustup component add rustfmt
- run: cargo fmt -- --check
sec:
name: Security audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/audit-check@v1
with:
2020-05-13 19:15:17 +03:00
token: ${{ secrets.GITHUB_TOKEN }}
log-test:
name: Changelog Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Extract release notes
id: extract_release_notes
uses: ffurrer2/extract-release-notes@v1
with:
release_notes_file: ./release-notes.txt
- uses: actions/upload-artifact@v1
with:
name: current-release-notes
path: ./release-notes.txt