name: daily-bundler

on:
  schedule:
    - cron: '0 0 * * *'

permissions:
  contents: read

defaults:
  run:
    shell: bash

jobs:
  daily_bundler:
    name: Bundler (ruby-head)
    runs-on: ubuntu-24.04
    if: github.repository == 'rubygems/rubygems'
    env:
      RGV: ..
    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Set up Ruby
        uses: ruby/setup-ruby@7d3497fd78c07c0d84ebafa58d8dac60cd1f0763 # v1.199.0
        with:
          ruby-version: ruby-head
          bundler: none

      - name: Show Ruby version
        run: ruby --version

      - name: Prepare dependencies
        run: |
          sudo apt-get install graphviz -y
          bin/rake spec:parallel_deps

      - name: Run Test
        run: |
          bin/rake spec:all
      - name: Get previous status
        if: always()
        run: echo "OLD_STATUS=$(curl -sS 'https://api.github.com/repos/rubygems/rubygems/actions/workflows/daily-bundler.yml/runs?event=schedule&branch=master' | jq '.workflow_runs | .[1].conclusion')" >> $GITHUB_ENV

      - uses: 8398a7/action-slack@fbd6aa58ba854a740e11a35d0df80cb5d12101d8 # v3.15.1
        with:
          status: ${{ job.status }}
          fields: repo,message,commit,author,action,eventName,ref,workflow
        env:
          SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required
        if: failure() && env.OLD_STATUS == '"success"'

    timeout-minutes: 60
