rusty-box 0.4.1-alpha

Box.com API wrapper
Documentation
name: CI SCCache

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    name:  ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    # runs-on: ubuntu-latest

    strategy:
        fail-fast: false
        matrix:
        #   os: [ubuntu-latest, macos-latest]
          os: [ubuntu-latest]
          rust: [stable]
          include:
            - os: ubuntu-latest
              sccache-path: /home/runner/.cache/sccache
            # - os: macos-latest
            #   sccache-path: /Users/runner/Library/Caches/Mozilla.sccache
        #   exclude:
        #     - os: macos-latest
        #       rust: stable
        #       make:
        #         name: Clippy
    
    env:
        RUST_BACKTRACE: full
        RUSTC_WRAPPER: sccache
        RUSTV: ${{ matrix.rust }}
        SCCACHE_CACHE_SIZE: 2G
        SCCACHE_DIR: ${{ matrix.sccache-path }}
        # SCCACHE_RECACHE: 1 # Uncomment this to clear cache, then comment it back out
        
    steps:
    - uses: actions/checkout@v3
    - name: Install sccache (ubuntu-latest)
      if: matrix.os == 'ubuntu-latest'
      env:
        LINK: https://github.com/mozilla/sccache/releases/download
        SCCACHE_VERSION: 0.5.4
      run: |
        SCCACHE_FILE=sccache-v$SCCACHE_VERSION-x86_64-unknown-linux-musl
        mkdir -p $HOME/.local/bin
        curl -L "$LINK/v$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
        mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
        echo "$HOME/.local/bin" >> $GITHUB_PATH          
            
    # - name: Install sccache (macos-latest)
    #   if: matrix.os == 'macos-latest'
    #   run: |
    #     brew update
    #     brew install sccache          

    - name: Install Rust ${{ matrix.rust }}
      uses: actions-rs/toolchain@v1
      with:
        toolchain: ${{ matrix.rust }}
        profile: minimal
        override: true

    - name: Cache cargo registry
      uses: actions/cache@v2
      continue-on-error: false
      with:
        path: |
          ~/.cargo/registry
          ~/.cargo/git            
        key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
                    ${{ runner.os }}-cargo-
    - name: Save sccache
      uses: actions/cache@v2
      continue-on-error: false
      with:
        path: ${{ matrix.sccache-path }}
        key: ${{ runner.os }}-sccache-${{ hashFiles('**/Cargo.lock') }}
        restore-keys: |
                    ${{ runner.os }}-sccache-

    - name: Start sccache server
      run: sccache --start-server

    # - name: Build
    #   run: cargo build

    - name: Code Formatting
      run: cargo fmt -- --check

    - name: Clippy
      run: cargo clippy --no-deps -- -D warnings

    - name: Create .ccg.env from secrets
      run: |
        echo "${{secrets.CCG_ENV}}"
        echo "${{secrets.CCG_ENV}}" | base64 -d > .ccg.env
    
    - name: Run tests
      run: cargo test --tests

    - name: Doc testts
      run: cargo test --doc

    - name: Print sccache stats
      run: sccache --show-stats
    - name: Stop sccache server
      run: sccache --stop-server || true

    - name: Done
      run: echo "Done..."