name: CI/CD
on: [pull_request, push]
env:
CARGO_NET_RETRY: 10
RUSTUP_MAX_RETRIES: 10
CARGO_INCREMENTAL: 0
CI: 1
RUST_BACKTRACE: short
RUSTFLAGS: -D warnings
RUSTDOCFLAGS: -D warnings
jobs:
ci:
name: CI
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
runs-on: ${{ matrix.os }}
steps:
- name: "[Linux] Install drivers"
if: ${{ startsWith(matrix.os, 'ubuntu') }}
run: |
sudo apt-get update -y -qq
sudo apt-get install -y libegl1-mesa libgl1-mesa-dri libxcb-xfixes0-dev mesa-vulkan-drivers xvfb
Xvfb :1 -screen 0 1600x1200x24 &
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Rust toolchain
run: rustup install stable --profile=minimal
- name: Install Rust target
run: rustup target add ${{ matrix.target }}
- name: Install CI/CD tooling
run: cargo install sludge-cicd --debug
- name: Run CI/CD
run: sludge-cicd --target ${{ matrix.target }}
cd:
name: Autopublish
needs: ci
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install Rust toolchain
run: rustup install stable --profile=minimal
- name: Install CI/CD tooling
run: cargo install sludge-cicd --debug
- name: Run CI/CD
run: sludge-cicd
env:
CRATES_IO_TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
CICD_CHECK_ONLY: 1