name: Packdeps

on:
  workflow_dispatch:
  schedule:
    # Run every Saturday
    - cron: '0 3 * * 6'

jobs:
  packdeps:
    name: Packdeps
    runs-on: ubuntu-latest

    steps:
      - name: Clone project
        uses: actions/checkout@v4
      - name: Setup Haskell
        uses: haskell-actions/setup@v2
        with:
          # packdeps doesn't build with newer as of 2021-10
          ghc-version: '8.8'
      - name: Install packdeps
        run: |
          set -ex
          cd  # go somewhere without a cabal.project
          cabal install packdeps
      - name: Check package bounds (all)
        continue-on-error: true
        run: |
          set -ex
          packdeps \
            --exclude X11 \
            --exclude xmonad \
            *.cabal
      - name: Check package bounds (preferred)
        run: |
          set -ex
          packdeps \
            --preferred \
            --exclude X11 \
            --exclude xmonad \
            *.cabal

  workflow-keepalive:
    if: github.event_name == 'schedule'
    runs-on: ubuntu-latest
    permissions:
      actions: write
    steps:
      - uses: liskin/gh-workflow-keepalive@v1
        with:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}