name: Unit-tests on Macos CPU

on:
  pull_request:
  push:
    branches:
      - nightly
      - main
      - release/*
  workflow_dispatch:

env:
  CHANNEL: "nightly"

jobs:
  tests:
    uses: pytorch/test-infra/.github/workflows/macos_job.yml@main
    with:
      runner: macos-12
      repository: pytorch/audio
      timeout: 180
      script: |
        echo '::group::Setup Environment Variables'
        # Mark Build Directory Safe
        git config --global --add safe.directory /__w/audio/audio

        # Set up Environment Variables
        export PYTHON_VERSION="3.8"
        export CU_VERSION=""
        export CUDATOOLKIT=""
        export USE_FFMPEG="1"
        export USE_OPENMP="0"

        # Set CHANNEL
        if [[(${GITHUB_EVENT_NAME} = 'pull_request' && (${GITHUB_BASE_REF} = 'release'*)) || (${GITHUB_REF} = 'refs/heads/release'*) ]]; then
          export UPLOAD_CHANNEL=test
        else
          export UPLOAD_CHANNEL=nightly
        fi

        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_APPLY_CMVN_SLIDING=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_FBANK_FEATS=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_KALDI_PITCH_FEATS=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_MFCC_FEATS=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CMD_COMPUTE_SPECTROGRAM_FEATS=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_CUDA=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_HW_ACCEL=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_QUANTIZATION=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_ON_PYTHON_310=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_MOD_sentencepiece=true
        export TORCHAUDIO_TEST_ALLOW_SKIP_IF_NO_AUDIO_OUT_DEVICE=true
        echo '::endgroup::'

        set -euxo pipefail

        echo '::group::Setup Conda Environment'
        ./.circleci/unittest/linux/scripts/setup_env.sh
        echo '::endgroup::'

        echo '::group::Install PyTorch and Torchaudio'
        ./.circleci/unittest/linux/scripts/install.sh
        echo '::endgroup::'

        echo '::group::Run Tests'
        ./.circleci/unittest/linux/scripts/run_test.sh
        echo '::endgroup::'
