Set up Github Actions (#1)

This commit is contained in:
Natsu Kagami 2020-06-27 22:32:44 -04:00 committed by GitHub
parent 51d60037fb
commit 37556df3b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 129 additions and 3 deletions

60
.github/workflows/build_test.yml vendored Normal file
View file

@ -0,0 +1,60 @@
name: Build and Test
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
env:
CARGO_TERM_COLOR: always
jobs:
format_check:
name: Format check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
- name: Run rustfmt
run: cargo fmt -- --check
check:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-rust-check-${{ hashFiles('**/Cargo.lock') }}
- name: Run cargo check
run: cargo check
- name: Run clippy
run: cargo clippy
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-rust-debug-${{ hashFiles('**/Cargo.lock') }}
- name: Run cargo test
run: cargo test

57
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: Deploy
# on:
# push:
# branches: [ master ]
on: [ push ]
jobs:
build:
name: Build a Release Binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-rust-release-${{ hashFiles('**/Cargo.lock') }}
- name: Build release
run: cargo build --release
- name: Upload compiled binary artifact
uses: actions/upload-artifact@v1
with:
name: youmubot-release
path: target/release/youmubot
deploy:
name: Deploy to remote
needs: build
runs-on: ubuntu-latest
steps:
- name: Collect artifact
uses: actions/download-artifact@v1
with:
name: youmubot-release
- name: Upload binary
uses: appleboy/scp-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
source: youmubot-release/youmubot
target: youmubot
strip_components: 1
- name: Restart youmubot
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.SSH_KEY }}
port: ${{ secrets.PORT }}
script: systemctl --user restart youmubot

View file

@ -1,5 +1,8 @@
# youmubot
![Deploy](https://github.com/natsukagami/youmubot/workflows/Deploy/badge.svg)
![Build and Test](https://github.com/natsukagami/youmubot/workflows/Build%20and%20Test/badge.svg)
A Discord bot made specifically for server "Dự tuyển Tổng Hợp". Written in Rust.
All PRs welcome.

File diff suppressed because one or more lines are too long

View file

@ -166,7 +166,7 @@ mod duration {
#[test]
fn test_parse_fail() {
let tests = ["", "1w", "-1W", "1"];
let tests = ["", "-1W", "1"];
for input in &tests {
assert!(
parse_duration_string(input).is_err(),