name: integration

on:
  push:
    branches:
      - 1.0
    paths-ignore:
      - 'docs/**'
      - README.md
  pull_request:
    branches:
      - 1.0
    paths-ignore:
      - 'docs/**'
      - README.md
  workflow_dispatch:

jobs:
  # check-if-duplicate-action:
  #   # continue-on-error: true # Uncomment once integration is finished
  #   runs-on: ubuntu-latest
  #   outputs:
  #     should_skip: ${{ steps.skip_check.outputs.should_skip }}
  #   steps:
  #     - id: skip_check
  #       uses: fkirc/skip-duplicate-actions@v5
  #       with:
  #         concurrent_skipping: 'never'
  #         skip_after_successful_duplicate: 'true'
  #         paths_ignore: '["1.0/docs/**"]'
  #         paths: '["1.0/**.go", "1.0/*.sh", "1.0/.github", "1.0/data/ansible/conf/samples/**", "1.0/data/tariffplans"]'

  integration-tests:
    # needs: check-if-duplicate-action
    # if: needs.check-if-duplicate-action.outputs.should_skip != 'true'
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install Go
        uses: actions/setup-go@v5
        with:
          go-version: "1.25.x"

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.x"

      - name: Install Ansible
        run: |
          python -m pip install --upgrade pip
          pip install ansible

      - name: Run Ansible Playbook
        run: |
          ansible-playbook data/ansible/integration_tests/main.yaml -i localhost, -c local -e "ansible_user=$(whoami) cgrates_dir=$GITHUB_WORKSPACE cgrates_clone_repo=false install_go=false"

      # - name: Set up tmate session for debugging
      #   uses: mxschmitt/action-tmate@v3

      - name: Run migrator & services tests
        continue-on-error: true
        run: |
          sudo env "PATH=$PATH" go test github.com/cgrates/cgrates/migrator -tags=integration
          sudo env "PATH=$PATH" go test github.com/cgrates/cgrates/services -tags=integration

      - name: Run flaky tests
        continue-on-error: true 
        run: |
          sudo env "PATH=$PATH" ./flaky_test.sh

      - name: Run integration tests
        run: |
          sudo env "PATH=$PATH" ./integration_test.sh
