circuitpython-deploy 0.1.2

Fast, reliable CircuitPython project deployment tool
Documentation
name: Dependencies

on:
  schedule:
    # Run weekly on Sundays at 12:00 UTC
    - cron: '0 12 * * 0'
  workflow_dispatch:

jobs:
  update-dependencies:
    name: Update Dependencies
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4

    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable

    - name: Install cargo-edit
      run: cargo install cargo-edit

    - name: Update dependencies
      run: cargo upgrade

    - name: Run tests with updated dependencies
      run: |
        cargo check --all-targets --all-features
        cargo test --lib
        cargo test --test integration_test

    - name: Create Pull Request
      uses: peter-evans/create-pull-request@v5
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        commit-message: 'chore: update dependencies'
        title: 'chore: update dependencies'
        body: |
          ## Dependency Updates
          
          This PR updates the project dependencies to their latest versions.
          
          ### Changes
          - Updated Cargo dependencies to latest compatible versions
          - All tests pass with updated dependencies
          
          ### Testing
          - [x] `cargo check` passes
          - [x] Unit tests pass
          - [x] Integration tests pass
          
          This PR is automatically generated by the dependencies workflow.
        branch: update-dependencies
        delete-branch: true

  security-audit:
    name: Security Audit
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4

    - name: Install Rust toolchain
      uses: dtolnay/rust-toolchain@stable

    - name: Install cargo-audit
      run: cargo install cargo-audit

    - name: Run security audit
      run: cargo audit

    - name: Install cargo-deny
      run: cargo install cargo-deny

    - name: Run license and ban check
      run: cargo deny check

  check-msrv:
    name: Check Minimum Rust Version
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4

    - name: Install Rust 1.75.0
      uses: dtolnay/rust-toolchain@1.75.0

    - name: Check MSRV
      run: cargo check --all-targets --all-features