sixel-rs 0.5.0

A safe Rust wrapper for libsixel (active fork)
name: Continuous Integration

on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master
  schedule:
    - cron: "0 0 * * 0"

jobs:
  build:
    name: Build on ${{ matrix.OS }} using Rust ${{ matrix.TOOLCHAIN }}
    runs-on: ${{ matrix.OS }}
    strategy:
      fail-fast: false
      matrix:
        OS: [ubuntu-latest, macos-latest]
        TOOLCHAIN: [stable, nightly]
    steps:
      - name: Checkout the repository
        uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: ${{ matrix.TOOLCHAIN }}
          override: true
      - name: Cache Cargo dependencies
        uses: Swatinem/rust-cache@v2
      - name: Build
        uses: actions-rs/cargo@v1
        with:
          command: build

  lint:
    name: Check lints
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the repository
        uses: actions/checkout@v2
      - name: Install Rust
        uses: actions-rs/toolchain@v1
        with:
          profile: minimal
          toolchain: stable
          override: true
          components: rustfmt, clippy
      - name: Cache Cargo dependencies
        uses: Swatinem/rust-cache@v2
      - name: Check formatting
        uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check
      - name: Run clippy
        uses: actions-rs/cargo@v1
        with:
          command: clippy
          args: -- -D warnings

  audit:
    name: Perform audit for security
    runs-on: ubuntu-latest
    steps:
      - name: Checkout the repository
        uses: actions/checkout@v2
      - name: Run cargo-audit
        uses: actions-rs/audit-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}