Skip to content

Commit

Permalink
Attempt CI similar to serenity
Browse files Browse the repository at this point in the history
  • Loading branch information
FelixMcFelix committed Nov 13, 2020
1 parent 09da85b commit c5ce107
Show file tree
Hide file tree
Showing 5 changed files with 260 additions and 1 deletion.
181 changes: 181 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
name: CI

on: [push, pull_request]

jobs:
lint:
name: Lint
runs-on: ubuntu-latest

steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: rustfmt clippy
override: true
- name: Rustfmt
run: cargo +nightly fmt --all -- --check
- name: Clippy
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: --all-features

test:
name: Test
runs-on: ${{ matrix.os || 'ubuntu-latest' }}

strategy:
fail-fast: false
matrix:
name:
- stable
- beta
- nightly
- macOS
- Windows
- driver only
- gateway only

include:
- name: beta
toolchain: beta
- name: nightly
toolchain: nightly
- name: macOS
os: macOS-latest
- name: Windows
os: windows-latest
- name: driver only
features: driver
- name: gateway only
features: serenity-rustls

steps:
- name: Checkout sources
uses: actions/checkout@v2

- name: Install toolchain
id: tc
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain || 'stable' }}
profile: minimal
override: true

- name: Install dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Setup cache
if: runner.os != 'macOS'
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-test-${{ steps.tc.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }}

- name: Build all features
if: matrix.features == ''
run: cargo build --all-features

- name: Test all features
if: matrix.features == ''
run: cargo test --all-features

- name: Build some features
if: matrix.features
run: cargo build --no-default-features --features "${{ matrix.features }}"

- name: Test some features
if: matrix.features
run: cargo test --no-default-features --features "${{ matrix.features }}"

doc:
name: Build docs
runs-on: ubuntu-latest

steps:
- name: Checkout sources
uses: actions/checkout@v2

- name: Install toolchain
id: tc
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Setup cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
key: ${{ runner.os }}-docs-${{ steps.tc.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }}

- name: Build docs
env:
RUSTDOCFLAGS: -D broken_intra_doc_links
run: |
cargo doc --no-deps --features collector,voice
cargo doc --no-deps -p command_attr
examples:
name: Examples
runs-on: ubuntu-latest

steps:
- name: Checkout sources
uses: actions/checkout@v2

- name: Install toolchain
id: tc
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Setup cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
examples/target
key: ${{ runner.os }}-examples-${{ steps.tc.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }}

- name: 'Build serenity/voice'
working-directory: examples
run: cargo build -p voice
- name: 'Build serenity/voice_events_queue'
working-directory: examples
run: cargo build -p voice_events_queue
- name: 'Build serenity/voice_receive'
working-directory: examples
run: cargo build -p voice_receive
- name: 'Build serenity/voice_storage'
working-directory: examples
run: cargo build -p voice_storage
- name: 'Build twilight'
working-directory: examples
run: cargo build -p twilight
62 changes: 62 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: Publish docs

on:
push:
branches:
- current
- next

jobs:
docs:
name: Publish docs
runs-on: ubuntu-latest

steps:
- name: Checkout sources
uses: actions/checkout@v2

- name: Install toolchain
id: tc
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Setup cache
uses: actions/cache@v2
with:
path: |
~/.cargo/registry
~/.cargo/git
target/debug
key: ${{ runner.os }}-gh-pages-${{ steps.tc.outputs.rustc_hash }}-${{ hashFiles('**/Cargo.toml') }}

- name: Build docs
env:
RUSTDOCFLAGS: -D broken_intra_doc_links
run: |
cargo doc --no-deps --all-features
- name: Prepare docs
shell: bash -e -O extglob {0}
run: |
DIR=${GITHUB_REF/refs\/+(heads|tags)\//}
mkdir -p ./docs/$DIR
touch ./docs/.nojekyll
echo '<meta http-equiv="refresh" content="0;url=serenity/index.html">' > ./docs/$DIR/index.html
mv ./target/doc/* ./docs/$DIR/
- name: Deploy docs
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: ./docs
allow_empty_commit: false
keep_files: true
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[![docs-badge][]][docs] [![build badge]][build]

# Songbird

![](songbird.png)
Expand Down Expand Up @@ -29,3 +31,9 @@ Songbird's logo is based upon the copyright-free image ["Black-Capped Chickadee"
["Black-Capped Chickadee"]: https://www.oldbookillustrations.com/illustrations/black-capped-chickadee/
[lavalink]: https://github.com/Frederikam/Lavalink
[this crate's examples directory]: https://github.com/serenity-rs/songbird/tree/current/examples

[build badge]: https://img.shields.io/github/workflow/status/serenity-rs/songbird/Build%20and%20Test%20(Stable)?style=flat-square
[build]: https://github.com/serenity-rs/songbird/actions

[docs-badge]: https://img.shields.io/badge/docs-online-4d76ae.svg?style=flat-square
[docs]: https://serenity-rs.github.io/songbird/current
8 changes: 8 additions & 0 deletions examples/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[workspace]
members = [
"serenity/voice",
"serenity/voice_events_queue",
"serenity/voice_receive",
"serenity/voice_storage",
"twilight",
]
2 changes: 1 addition & 1 deletion examples/twilight/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[package]
name = "basic-twilight-bot"
name = "twilight"
version = "0.1.0"
authors = ["Twilight and Serenity Contributors"]
edition = "2018"
Expand Down

0 comments on commit c5ce107

Please sign in to comment.