---
name: Periodic

on:
  schedule:
    - cron: "0 0 * * 0"

permissions: {}

jobs:
  markdown-link-check-periodic:
    name: Markdown Links (all files)
    if: github.repository_owner == 'submariner-io'
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Check out the repository
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

      - name: Run markdown-link-check
        uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec
        with:
          config-file: ".markdownlinkcheck.json"

      - name: Raise an Issue to report broken links
        if: ${{ failure() }}
        uses: peter-evans/create-issue-from-file@24452a72d85239eacf1468b0f1982a9f3fec4c94
        with:
          title: Broken link detected by CI
          content-filepath: .github/ISSUE_TEMPLATE/broken-link.md
          labels: automated, broken link

  go-mod-outdated-periodic:
    name: Outdated Dependencies
    if: github.repository_owner == 'submariner-io'
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        project: [
          'admiral', 'cloud-prepare', 'lighthouse', 'shipyard',
          'subctl', 'submariner-bot', 'submariner', 'submariner-operator'
        ]
    steps:
      - name: Check out the Shipyard repository
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

      - name: Build go-mod-outdated
        run: cd tools && go build -o ../bin/go-mod-outdated github.com/psampaz/go-mod-outdated

      - name: Check out the ${{ matrix.project }} repository
        uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
        with:
          repository: submariner-io/${{ matrix.project }}
          path: ${{ matrix.project }}

      - name: Check for updates
        run: (cd ${{ matrix.project }}; go list -u -m -json all) | bin/go-mod-outdated -direct -update