Chore(ci): Update rust, cargo and cache actions (#177)

* chore(ci): Update rust setup and cache action
* chore(ci): Remove legacy-tokio from test matrix

This was removed as it doesn't seem to be used any more.
This commit is contained in:
Jonathan
2023-04-26 15:07:49 +02:00
committed by Kyle Simpson
parent 4eadeb6834
commit 5ddc8f4448

View File

@@ -6,28 +6,24 @@ jobs:
lint: lint:
name: Lint name: Lint
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install toolchain - name: Install toolchain
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@master
with: with:
toolchain: nightly toolchain: nightly
components: rustfmt, clippy components: rustfmt,clippy
override: true - name: Setup cache
- name: Rustfmt uses: Swatinem/rust-cache@v2
run: cargo +nightly fmt --all -- --check - name: Rustfmt
- name: Clippy run: cargo +nightly fmt --all -- --check
uses: actions-rs/clippy-check@v1 - name: Clippy
with: run: cargo clippy --features full-doc
token: ${{ secrets.GITHUB_TOKEN }}
args: --features full-doc
test: test:
name: Test name: Test
runs-on: ${{ matrix.os || 'ubuntu-latest' }} runs-on: ${{ matrix.os || 'ubuntu-latest' }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
@@ -40,7 +36,6 @@ jobs:
- driver only - driver only
- gateway only - gateway only
- simd json - simd json
include: include:
- name: beta - name: beta
toolchain: beta toolchain: beta
@@ -62,61 +57,39 @@ jobs:
features: simd-json serenity rustls driver gateway serenity?/simd_json features: simd-json serenity rustls driver gateway serenity?/simd_json
rustflags: -C target-cpu=native rustflags: -C target-cpu=native
dont-test: true dont-test: true
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install toolchain - name: Install toolchain
id: tc uses: dtolnay/rust-toolchain@master
uses: actions-rs/toolchain@v1
with: with:
toolchain: ${{ matrix.toolchain || 'stable' }} toolchain: ${{ matrix.toolchain || 'stable' }}
profile: minimal - name: Setup cache
override: true uses: Swatinem/rust-cache@v2
- name: Install dependencies - name: Install dependencies
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libopus-dev
- name: Install yt-dlp (Unix) - name: Install yt-dlp (Unix)
if: runner.os != 'Windows' if: runner.os != 'Windows'
run: | run: |
sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp sudo wget https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -O /usr/local/bin/yt-dlp
sudo chmod a+rx /usr/local/bin/yt-dlp sudo chmod a+rx /usr/local/bin/yt-dlp
- name: Install yt-dlp (Windows) - name: Install yt-dlp (Windows)
if: runner.os == 'Windows' if: runner.os == 'Windows'
run: choco install yt-dlp run: choco install yt-dlp
- 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: Set RUSTFLAGS - name: Set RUSTFLAGS
if: runner.os != 'Windows' if: runner.os != 'Windows'
run: echo "RUSTFLAGS=${{ matrix.rustflags || '' }}" >> $GITHUB_ENV run: echo "RUSTFLAGS=${{ matrix.rustflags || '' }}" >> $GITHUB_ENV
- name: Build all features - name: Build all features
if: matrix.features == '' if: matrix.features == ''
run: cargo build --features full-doc run: cargo build --features full-doc
- name: Test all features - name: Test all features
if: ${{ !matrix.dont-test && matrix.features == '' }} if: ${{ !matrix.dont-test && matrix.features == '' }}
run: cargo test --features full-doc run: cargo test --features full-doc
- name: Build some features - name: Build some features
if: matrix.features if: matrix.features
run: cargo build --no-default-features --features "${{ matrix.features }}" run: cargo build --no-default-features --features "${{ matrix.features }}"
- name: Test some features - name: Test some features
if: ${{ !matrix.dont-test && matrix.features }} if: ${{ !matrix.dont-test && matrix.features }}
run: cargo test --no-default-features --features "${{ matrix.features }}" run: cargo test --no-default-features --features "${{ matrix.features }}"
@@ -124,32 +97,19 @@ jobs:
doc: doc:
name: Build docs name: Build docs
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install toolchain - name: Install toolchain
id: tc uses: dtolnay/rust-toolchain@master
uses: actions-rs/toolchain@v1
with: with:
toolchain: nightly toolchain: nightly
profile: minimal - name: Setup cache
override: true uses: Swatinem/rust-cache@v2
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libopus-dev 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 - name: Build docs
env: env:
RUSTDOCFLAGS: -D broken_intra_doc_links RUSTDOCFLAGS: -D broken_intra_doc_links
@@ -159,45 +119,34 @@ jobs:
examples: examples:
name: Examples name: Examples
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout sources - name: Checkout sources
uses: actions/checkout@v3 uses: actions/checkout@v3
- name: Install toolchain - name: Install toolchain
id: tc uses: dtolnay/rust-toolchain@master
uses: actions-rs/toolchain@v1
with: with:
toolchain: stable toolchain: stable
profile: minimal - name: Setup cache
override: true uses: Swatinem/rust-cache@v2
with:
workspaces: examples
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libopus-dev sudo apt-get install -y libopus-dev
- name: Setup cache - name: Build serenity/voice
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 working-directory: examples
run: cargo build -p voice run: cargo build -p voice
- name: 'Build serenity/voice_events_queue' - name: Build serenity/voice_events_queue
working-directory: examples working-directory: examples
run: cargo build -p voice_events_queue run: cargo build -p voice_events_queue
- name: 'Build serenity/voice_receive' - name: Build serenity/voice_receive
working-directory: examples working-directory: examples
run: cargo build -p voice_receive run: cargo build -p voice_receive
- name: 'Build serenity/voice_cached_audio' - name: Build serenity/voice_cached_audio
working-directory: examples working-directory: examples
run: cargo build -p voice_cached_audio run: cargo build -p voice_cached_audio
- name: 'Build twilight' - name: Build twilight
working-directory: examples working-directory: examples
run: cargo build -p twilight run: cargo build -p twilight