name: CI on: push: branches: [ main ] pull_request: branches: [ main ] permissions: {} jobs: scan: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout code uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Set up Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 with: ruby-version: .ruby-version bundler-cache: true - name: Scan for security vulnerabilities run: bin/brakeman lint: runs-on: ubuntu-latest permissions: contents: read steps: - name: Checkout code uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Set up Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 with: ruby-version: .ruby-version bundler-cache: true - name: Lint code for consistent style run: bin/rubocop lint-actions: name: GitHub Actions audit runs-on: ubuntu-latest permissions: contents: read steps: - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Run actionlint uses: rhysd/actionlint@393031adb9afb225ee52ae2ccd7a5af5525e03e8 # v1.7.11 - name: Run zizmor uses: zizmorcore/zizmor-action@71321a20a9ded102f6e9ce5718a2fcec2c4f70d8 # v0.5.2 with: advanced-security: false test: runs-on: ubuntu-latest permissions: contents: read services: redis: image: redis # zizmor: ignore[unpinned-images] -- version tag is fine for service containers ports: - 6379:6379 options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Install packages run: sudo apt-get update && sudo apt-get install --no-install-recommends -y libsqlite3-0 libvips curl ffmpeg - name: Checkout code uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Set up Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 env: REDIS_URL: redis://localhost:6379/0 with: ruby-version: .ruby-version bundler-cache: true - name: Run tests run: bin/rails db:setup test test_system: runs-on: ubuntu-latest permissions: contents: read services: redis: image: redis # zizmor: ignore[unpinned-images] -- version tag is fine for service containers ports: - 6379:6379 options: --health-cmd "redis-cli ping" --health-interval 10s --health-timeout 5s --health-retries 5 steps: - name: Install packages run: sudo apt-get update && sudo apt-get install --no-install-recommends -y libsqlite3-0 libvips curl ffmpeg - name: Checkout code uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1 with: persist-credentials: false - name: Set up Ruby uses: ruby/setup-ruby@319994f95fa847cf3fb3cd3dbe89f6dcde9f178f # v1.295.0 env: REDIS_URL: redis://localhost:6379/0 with: ruby-version: .ruby-version bundler-cache: true - name: Run tests run: bin/rails db:setup test:system