name: CodeQL Security Analysis
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 3 * * 1'
workflow_dispatch:
permissions: read-all
jobs:
analyze:
name: CodeQL Analysis
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
timeout-minutes: 30
steps:
- name: Checkout repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Initialize CodeQL
uses: github/codeql-action/init@f3a6ee42055dd5f618fb31d987aae7b94518f043 with:
languages: rust
queries: security-extended
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 with:
toolchain: stable
- name: Cache Cargo dependencies
uses: Swatinem/rust-cache@23869a5bd66c73db3c0ac40331f3206eb23791dc
- name: Build project
run: cargo build --release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@f3a6ee42055dd5f618fb31d987aae7b94518f043 with:
category: "/language:rust"
upload: true
continue-on-error: false