name: Tests latest TRL release with dev dependencies

on:
  schedule:
    - cron: '0 0 * * *'  # Runs daily at midnight UTC

  workflow_dispatch:

env:
  TQDM_DISABLE: 1
  CI_SLACK_CHANNEL: ${{ secrets.CI_PUSH_MAIN_CHANNEL }}
  HF_TOKEN: ${{ secrets.HF_TOKEN }}
  TRL_EXPERIMENTAL_SILENCE: 1

jobs:
  tests:
    name: Tests latest TRL release with dev dependencies
    runs-on:
      group: aws-g4dn-2xlarge
    container:
      image: pytorch/pytorch:2.8.0-cuda12.8-cudnn9-devel
      options: --gpus all
    defaults:
      run:
        shell: bash
    steps:
      - name: Git checkout
        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1  # v7.0.1
        with: { ref: v1.9-release }

      - name: Set up Python 3.12
        uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1  # v6.3.0
        with:
          python-version: '3.12'

      - name: Install Make and Git
        run: |
          apt-get update && apt-get install -y make git curl

      - name: Install uv
        uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990  # v8.3.2

      - name: Create Python virtual environment
        run: |
          uv venv
          uv pip install --upgrade setuptools wheel

      - name: Install dependencies
        run: |
          source .venv/bin/activate
          uv pip install -U \
            ".[dev]" \
            "accelerate @ git+https://github.com/huggingface/accelerate.git" \
            "datasets @ git+https://github.com/huggingface/datasets.git" \
            "transformers @ git+https://github.com/huggingface/transformers.git"

      - name: Test with pytest
        run: |
          source .venv/bin/activate
          make test

      - name: Post to Slack
        uses: huggingface/hf-workflows/.github/actions/post-slack@main
        with:
          slack_channel: ${{ env.CI_SLACK_CHANNEL }}
          title: Results of latest TRL with Python 3.12 and dev dependencies
          status: ${{ job.status }}
          slack_token: ${{ secrets.SLACK_CIFEEDBACK_BOT_TOKEN }}
