config.yml.in 20 KB
Newer Older
1
2
3
4
version: 2.1

# How to test the Linux jobs:
#   - Install CircleCI local CLI: https://circleci.com/docs/2.0/local-cli/
5
6
#   - circleci config process .circleci/config.yml > gen.yml && circleci local execute -c gen.yml --job binary_linux_wheel_py3.8
#     - Replace binary_linux_wheel_py3.8 with the name of the job you want to test.
Edward Z. Yang's avatar
Edward Z. Yang committed
7
#       Job names are 'name:' key.
8

9
10
11
12
13
14
executors:
  windows-cpu:
    machine:
      resource_class: windows.xlarge
      image: windows-server-2019-vs2019:stable
      shell: bash.exe
peterjc123's avatar
peterjc123 committed
15

16
17
18
19
20
21
  windows-gpu:
    machine:
      resource_class: windows.gpu.nvidia.medium
      image: windows-server-2019-nvidia:stable
      shell: bash.exe

22
commands:
23
24
25
26
27
28
  generate_cache_key:
    description: "Generates a cache key file that changes daily"
    steps:
      - run:
          name: Generate cache key
          command: echo "$(date +"%Y-%m-%d")" > .cachekey
29
30
31
32
33
34
35
36
  designate_upload_channel:
    description: "inserts the correct upload channel into ${BASH_ENV}"
    steps:
      - run:
          name: adding UPLOAD_CHANNEL to BASH_ENV
          command: |
            our_upload_channel=nightly
            # On tags upload to test instead
37
            if [[ -n "${CIRCLE_TAG}" ]] || [[ ${CIRCLE_BRANCH} =~ release/* ]]; then
38
39
40
              our_upload_channel=test
            fi
            echo "export UPLOAD_CHANNEL=${our_upload_channel}" >> ${BASH_ENV}
moto's avatar
moto committed
41
42
  install_build_tools_macos:
    description: "installs tools required to build torchaudio"
moto's avatar
moto committed
43
44
    steps:
      - run:
moto's avatar
moto committed
45
46
          name: Install pkg-config
          command: HOMEBREW_NO_AUTO_UPDATE=1 brew install pkg-config wget
moto's avatar
moto committed
47
          # Disable brew auto update which is very slow
Eli Uriegas's avatar
Eli Uriegas committed
48
49
50
51
52
53
54
55
56
57
  load_conda_channel_flags:
    description: "Determines whether we need extra conda channels"
    steps:
      - run:
          name: Adding CONDA_CHANNEL_FLAGS to BASH_ENV
          command: |
              CONDA_CHANNEL_FLAGS=""
              if [[ "${PYTHON_VERSION}" = *3.9* ]]; then
                echo "export CONDA_CHANNEL_FLAGS=-c=conda-forge" >> ${BASH_ENV}
              fi
58

59
60
binary_common: &binary_common
  parameters:
Edward Z. Yang's avatar
Edward Z. Yang committed
61
    # Edit these defaults to do a release
62
63
64
65
66
67
68
69
70
71
    build_version:
      description: "version number of release binary; by default, build a nightly"
      type: string
      default: ""
    pytorch_version:
      description: "PyTorch version to build against; by default, use a nightly"
      type: string
      default: ""
    # Don't edit these
    python_version:
72
      description: "Python version to build against (e.g., 3.8)"
73
      type: string
74
  environment: &environment
75
76
77
    PYTHON_VERSION: << parameters.python_version >>
    BUILD_VERSION: << parameters.build_version >>
    PYTORCH_VERSION: << parameters.pytorch_version >>
Edward Z. Yang's avatar
Edward Z. Yang committed
78
    CU_VERSION: cpu
79

Mingbo Wan's avatar
Mingbo Wan committed
80
81
82
smoke_test_common: &smoke_test_common
  <<: *binary_common
  docker:
83
    - image: 308535385114.dkr.ecr.us-east-1.amazonaws.com/torchaudio/smoke_test:56c846a5-acaa-41a7-92f5-46ec66186c61
Mingbo Wan's avatar
Mingbo Wan committed
84
85
86
87
      aws_auth:
        aws_access_key_id: ${ECR_AWS_ACCESS_KEY}
        aws_secret_access_key: ${ECR_AWS_SECRET_ACCESS_KEY}

88
89
90
jobs:
  circleci_consistency:
    docker:
91
      - image: circleci/python:3.8
92
93
94
95
    steps:
      - checkout
      - run:
          command: |
96
            pip install --user --progress-bar off jinja2 pyyaml
97
98
99
            python .circleci/regenerate.py
            git diff --exit-code || (echo ".circleci/config.yml not in sync with config.yml.in! Run .circleci/regenerate.py to update config"; exit 1)

100
101
  download_third_parties_nix:
    docker:
moto's avatar
moto committed
102
      - image: "pytorch/torchaudio_unittest_base:manylinux"
103
104
105
    resource_class: small
    steps:
      - checkout
106
      - generate_cache_key
107
108
109
      - restore_cache:
          {% raw %}
          keys:
moto's avatar
moto committed
110
            - tp-nix-v2-{{ checksum ".cachekey" }}
111
112
          {% endraw %}
      - run:
moto's avatar
moto committed
113
          command: |
114
115
              mkdir -p third_party/sox/archives/
              wget --no-clobber --directory-prefix=third_party/sox/archives/ $(awk '/URL /{print $2}' third_party/sox/CMakeLists.txt)
116
117
      - save_cache:
          {% raw %}
moto's avatar
moto committed
118
          key: tp-nix-v2-{{ checksum ".cachekey" }}
119
120
          {% endraw %}
          paths:
121
            - third_party/sox/archives
122
123
124
      - persist_to_workspace:
          root: third_party
          paths:
125
            - sox/archives
126

127
128
129
  binary_linux_wheel:
    <<: *binary_common
    docker:
Eli Uriegas's avatar
Eli Uriegas committed
130
      - image: "pytorch/manylinux-cuda102"
131
132
133
    resource_class: 2xlarge+
    steps:
      - checkout
134
135
      - attach_workspace:
          at: third_party
136
137
138
      - run: packaging/build_wheel.sh
      - store_artifacts:
          path: dist
Edward Z. Yang's avatar
Edward Z. Yang committed
139
140
141
142
      - persist_to_workspace:
          root: dist
          paths:
            - "*"
143
144
145
146

  binary_linux_conda:
    <<: *binary_common
    docker:
147
      - image: "pytorch/conda-cuda"
148
149
150
    resource_class: 2xlarge+
    steps:
      - checkout
Eli Uriegas's avatar
Eli Uriegas committed
151
      - load_conda_channel_flags
152
153
      - attach_workspace:
          at: third_party
154
155
156
      - run: packaging/build_conda.sh
      - store_artifacts:
          path: /opt/conda/conda-bld/linux-64
Edward Z. Yang's avatar
Edward Z. Yang committed
157
      - persist_to_workspace:
158
          root: /opt/conda
Edward Z. Yang's avatar
Edward Z. Yang committed
159
          paths:
160
            - "conda-bld/*"
161
162
163
164

  binary_macos_wheel:
    <<: *binary_common
    macos:
165
      xcode: "9.4.1"
166
167
    steps:
      - checkout
moto's avatar
moto committed
168
      - install_build_tools_macos
Eli Uriegas's avatar
Eli Uriegas committed
169
      - load_conda_channel_flags
170
171
      - attach_workspace:
          at: third_party
172
173
174
175
176
177
178
179
180
181
182
      - run:
          # Cannot easily deduplicate this as source'ing activate
          # will set environment variables which we need to propagate
          # to build_wheel.sh
          command: |
            curl -o conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
            sh conda.sh -b
            source $HOME/miniconda3/bin/activate
            packaging/build_wheel.sh
      - store_artifacts:
          path: dist
Edward Z. Yang's avatar
Edward Z. Yang committed
183
184
185
186
      - persist_to_workspace:
          root: dist
          paths:
            - "*"
187
188
189
190

  binary_macos_conda:
    <<: *binary_common
    macos:
191
      xcode: "9.4.1"
192
193
    steps:
      - checkout
moto's avatar
moto committed
194
      - install_build_tools_macos
Eli Uriegas's avatar
Eli Uriegas committed
195
      - load_conda_channel_flags
196
197
      - attach_workspace:
          at: third_party
198
199
200
201
202
203
204
205
206
      - run:
          command: |
            curl -o conda.sh https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
            sh conda.sh -b
            source $HOME/miniconda3/bin/activate
            conda install -yq conda-build
            packaging/build_conda.sh
      - store_artifacts:
          path: /Users/distiller/miniconda3/conda-bld/osx-64
Edward Z. Yang's avatar
Edward Z. Yang committed
207
      - persist_to_workspace:
208
          root: /Users/distiller/miniconda3
Edward Z. Yang's avatar
Edward Z. Yang committed
209
          paths:
210
            - "conda-bld/*"
211

peterjc123's avatar
peterjc123 committed
212
213
214
215
216
217
  binary_windows_wheel:
    <<: *binary_common
    executor:
      name: windows-cpu
    steps:
      - checkout
Eli Uriegas's avatar
Eli Uriegas committed
218
      - load_conda_channel_flags
peterjc123's avatar
peterjc123 committed
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
      - run:
          name: build
          command: |
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda activate base
            bash packaging/build_wheel.sh
      - store_artifacts:
          path: dist
      - persist_to_workspace:
          root: dist
          paths:
            - "*"

  binary_windows_conda:
    <<: *binary_common
    executor:
      name: windows-cpu
    steps:
      - checkout
Eli Uriegas's avatar
Eli Uriegas committed
238
      - load_conda_channel_flags
peterjc123's avatar
peterjc123 committed
239
240
241
242
243
244
245
246
247
248
      - run:
          name: build
          command: |
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda activate base
            conda install -yq conda-build "conda-package-handling!=1.5.0"
            bash packaging/build_conda.sh
      - store_artifacts:
          path: C:/tools/miniconda3/conda-bld/win-64
      - persist_to_workspace:
249
          root: C:/tools/miniconda3
peterjc123's avatar
peterjc123 committed
250
          paths:
251
            - "conda-bld/*"
peterjc123's avatar
peterjc123 committed
252

Edward Z. Yang's avatar
Edward Z. Yang committed
253
254
255
256
257
258
259
  # Requires org-member context
  binary_conda_upload:
    docker:
      - image: continuumio/miniconda
    steps:
      - attach_workspace:
          at: ~/workspace
260
      - designate_upload_channel
Edward Z. Yang's avatar
Edward Z. Yang committed
261
262
263
264
265
      - run:
          command: |
            # Prevent credential from leaking
            conda install -yq anaconda-client
            set -x
266
            anaconda -t "${CONDA_PYTORCHBOT_TOKEN}" upload ~/workspace/conda-bld/*/*.tar.bz2 -u "pytorch-${UPLOAD_CHANNEL}" --label main --no-progress --force
Edward Z. Yang's avatar
Edward Z. Yang committed
267
268
269
270

  # Requires org-member context
  binary_wheel_upload:
    docker:
271
      - image: circleci/python:3.8
Edward Z. Yang's avatar
Edward Z. Yang committed
272
273
274
275
    steps:
      - attach_workspace:
          at: ~/workspace
      - checkout
276
      - designate_upload_channel
Edward Z. Yang's avatar
Edward Z. Yang committed
277
278
279
280
281
282
283
284
285
286
      - run:
          command: |
            pip install --user awscli
            export PATH="$HOME/.local/bin:$PATH"
            # Prevent credential from leaking
            set +x
            export AWS_ACCESS_KEY_ID="${PYTORCH_BINARY_AWS_ACCESS_KEY_ID}"
            export AWS_SECRET_ACCESS_KEY="${PYTORCH_BINARY_AWS_SECRET_ACCESS_KEY}"
            set -x
            for pkg in ~/workspace/*.whl; do
287
              aws s3 cp "$pkg" "s3://pytorch/whl/${UPLOAD_CHANNEL}/" --acl public-read
Edward Z. Yang's avatar
Edward Z. Yang committed
288
289
            done

Mingbo Wan's avatar
Mingbo Wan committed
290
291
292
  smoke_test_linux_conda:
    <<: *smoke_test_common
    steps:
Mingbo Wan's avatar
Mingbo Wan committed
293
294
      - attach_workspace:
          at: ~/workspace
295
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
296
      - load_conda_channel_flags
Mingbo Wan's avatar
Mingbo Wan committed
297
      - run:
Mingbo Wan's avatar
Mingbo Wan committed
298
          name: install binaries
Mingbo Wan's avatar
Mingbo Wan committed
299
300
301
          command: |
            set -x
            source /usr/local/etc/profile.d/conda.sh && conda activate python${PYTHON_VERSION}
302
            conda install -v -y -c pytorch-${UPLOAD_CHANNEL} pytorch cpuonly
303
            conda install -v -y -c file://$HOME/workspace/conda-bld torchaudio
Mingbo Wan's avatar
Mingbo Wan committed
304
305
306
307
      - run:
          name: smoke test
          command: |
            source /usr/local/etc/profile.d/conda.sh && conda activate python${PYTHON_VERSION}
Mingbo Wan's avatar
Mingbo Wan committed
308
309
310
311
312
            python -c "import torchaudio"

  smoke_test_linux_pip:
    <<: *smoke_test_common
    steps:
Mingbo Wan's avatar
Mingbo Wan committed
313
314
      - attach_workspace:
          at: ~/workspace
315
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
316
      - load_conda_channel_flags
Mingbo Wan's avatar
Mingbo Wan committed
317
      - run:
Mingbo Wan's avatar
Mingbo Wan committed
318
          name: install binaries
Mingbo Wan's avatar
Mingbo Wan committed
319
320
321
          command: |
            set -x
            source /usr/local/etc/profile.d/conda.sh && conda activate python${PYTHON_VERSION}
322
            pip install $(ls ~/workspace/torchaudio*.whl) -f "https://download.pytorch.org/whl/${UPLOAD_CHANNEL}/torch_${UPLOAD_CHANNEL}.html"
Mingbo Wan's avatar
Mingbo Wan committed
323
324
325
326
      - run:
          name: smoke test
          command: |
            source /usr/local/etc/profile.d/conda.sh && conda activate python${PYTHON_VERSION}
Mingbo Wan's avatar
Mingbo Wan committed
327
328
            python -c "import torchaudio"

329
330
331
332
333
334
335
  smoke_test_windows_conda:
    <<: *binary_common
    executor:
      name: windows-cpu
    steps:
      - attach_workspace:
          at: ~/workspace
336
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
337
      - load_conda_channel_flags
338
339
340
341
342
343
344
345
      - run:
          name: install binaries
          command: |
            set -x
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda env remove -n python${PYTHON_VERSION} || true
            conda create -yn python${PYTHON_VERSION} python=${PYTHON_VERSION}
            conda activate python${PYTHON_VERSION}
346
            conda install -v -y -c pytorch-${UPLOAD_CHANNEL} pytorch cpuonly
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
            conda install -v -y $(ls ~/workspace/torchaudio*.tar.bz2)
      - run:
          name: smoke test
          command: |
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda activate python${PYTHON_VERSION}
            python -c "import torchaudio"

  smoke_test_windows_pip:
    <<: *binary_common
    executor:
      name: windows-cpu
    steps:
      - attach_workspace:
          at: ~/workspace
362
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
363
      - load_conda_channel_flags
364
365
366
367
368
369
370
371
      - run:
          name: install binaries
          command: |
            set -x
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda env remove -n python${PYTHON_VERSION} || true
            conda create -yn python${PYTHON_VERSION} python=${PYTHON_VERSION}
            conda activate python${PYTHON_VERSION}
372
            pip install $(ls ~/workspace/torchaudio*.whl) -f "https://download.pytorch.org/whl/${UPLOAD_CHANNEL}/torch_${UPLOAD_CHANNEL}.html"
373
374
375
376
377
378
379
      - run:
          name: smoke test
          command: |
            eval "$('/C/tools/miniconda3/Scripts/conda.exe' 'shell.bash' 'hook')"
            conda activate python${PYTHON_VERSION}
            python -c "import torchaudio"

380
  smoke_test_docker_image_build:
Mingbo Wan's avatar
Mingbo Wan committed
381
382
383
384
385
386
387
388
389
390
391
    machine:
      image: ubuntu-1604:201903-01
    resource_class: large
    environment:
      image_name: torchaudio/smoke_test
    steps:
      - checkout
      - run:
          name: build_docker image
          no_output_timeout: "1h"
          command: |
392
            cd .circleci/smoke_test/docker && docker build . -t ${image_name}:${CIRCLE_WORKFLOW_ID}
Mingbo Wan's avatar
Mingbo Wan committed
393
394
395
396
397
398
399
400
401
402
      - run:
          name: upload docker image
          no_output_timeout: "1h"
          command: |
            set +x
            export AWS_ACCESS_KEY_ID=${ECR_AWS_ACCESS_KEY}
            export AWS_SECRET_ACCESS_KEY=${ECR_AWS_SECRET_ACCESS_KEY}
            eval $(aws ecr get-login --region us-east-1 --no-include-email)
            set -x
            docker tag ${image_name}:${CIRCLE_WORKFLOW_ID} 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
403
            docker tag ${image_name}:${CIRCLE_WORKFLOW_ID} 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:latest
Mingbo Wan's avatar
Mingbo Wan committed
404
            docker push 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:${CIRCLE_WORKFLOW_ID}
405
            docker push 308535385114.dkr.ecr.us-east-1.amazonaws.com/${image_name}:latest
Edward Z. Yang's avatar
Edward Z. Yang committed
406

moto's avatar
moto committed
407
  unittest_linux_cpu:
moto's avatar
moto committed
408
409
    <<: *binary_common
    docker:
410
      - image: pytorch/torchaudio_unittest_base:manylinux-20210121
moto's avatar
moto committed
411
412
413
    resource_class: 2xlarge+
    steps:
      - checkout
414
415
      - attach_workspace:
          at: third_party
416
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
417
      - load_conda_channel_flags
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
      - run:
          name: Setup
          command: .circleci/unittest/linux/scripts/setup_env.sh
      - run:
          name: Install torchaudio
          command: .circleci/unittest/linux/scripts/install.sh
      - run:
          name: Run tests
          command: .circleci/unittest/linux/scripts/run_test.sh
      - run:
          name: Post process
          command: .circleci/unittest/linux/scripts/post_process.sh
      - store_test_results:
          path: test-results

moto's avatar
moto committed
433
434
435
436
437
438
  unittest_linux_gpu:
    <<: *binary_common
    machine:
      image: ubuntu-1604-cuda-10.1:201909-23
    resource_class: gpu.small
    environment:
439
      <<: *environment
440
      image_name: pytorch/torchaudio_unittest_base:manylinux-cuda10.1-cudnn7-20210121
moto's avatar
moto committed
441
442
    steps:
      - checkout
443
444
      - attach_workspace:
          at: third_party
445
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
446
      - load_conda_channel_flags
447
448
449
      - run:
          name: Pull Docker image
          command: docker pull --quiet "${image_name}"
moto's avatar
moto committed
450
451
      - run:
          name: Setup
452
          command: docker run -t --gpus all -e PYTHON_VERSION -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/setup_env.sh
moto's avatar
moto committed
453
454
      - run:
          name: Install torchaudio
Eli Uriegas's avatar
Eli Uriegas committed
455
          command: docker run -t --gpus all -e UPLOAD_CHANNEL -e CONDA_CHANNEL_FLAGS -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/install.sh
moto's avatar
moto committed
456
457
458
459
460
461
462
463
464
465
      - run:
          name: Run tests
          command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/run_test.sh
      - run:
          name: Post Process
          command: docker run -t --gpus all -v $PWD:$PWD -w $PWD "${image_name}" .circleci/unittest/linux/scripts/post_process.sh
      - store_test_results:
          path: test-results

  unittest_windows_cpu:
466
467
468
    <<: *binary_common
    executor:
      name: windows-cpu
469
470
    steps:
      - checkout
471
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
472
      - load_conda_channel_flags
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
      - run:
          name: Setup
          command: .circleci/unittest/windows/scripts/setup_env.sh
      - run:
          name: Install torchaudio
          command: .circleci/unittest/windows/scripts/install.sh
      - run:
          name: Run tests
          command: .circleci/unittest/windows/scripts/run_test.sh
      - run:
          name: Post process
          command: .circleci/unittest/windows/scripts/post_process.sh
      - store_test_results:
          path: test-results

  unittest_windows_gpu:
    <<: *binary_common
    executor:
      name: windows-gpu
    environment:
493
      <<: *environment
494
      CUDA_VERSION: "10.1"
495
496
    steps:
      - checkout
497
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
498
      - load_conda_channel_flags
moto's avatar
moto committed
499
500
      - run:
          name: Setup
501
          command: .circleci/unittest/windows/scripts/setup_env.sh
moto's avatar
moto committed
502
      - run:
503
          name: Install torchaudio
504
          command: .circleci/unittest/windows/scripts/install.sh
moto's avatar
moto committed
505
      - run:
506
          name: Run tests
507
          command: .circleci/unittest/windows/scripts/run_test.sh
moto's avatar
moto committed
508
509
      - run:
          name: Post process
510
          command: .circleci/unittest/windows/scripts/post_process.sh
moto's avatar
moto committed
511
512
      - store_test_results:
          path: test-results
moto's avatar
moto committed
513

moto's avatar
moto committed
514
515
516
  unittest_macos_cpu:
    <<: *binary_common
    macos:
517
      xcode: "9.4.1"
moto's avatar
moto committed
518
519
520
521
    resource_class: large
    steps:
      - checkout
      - install_build_tools_macos
Eli Uriegas's avatar
Eli Uriegas committed
522
      - load_conda_channel_flags
moto's avatar
moto committed
523
524
      - attach_workspace:
          at: third_party
525
      - designate_upload_channel
moto's avatar
moto committed
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
      - run:
          name: Setup
          command: .circleci/unittest/linux/scripts/setup_env.sh
      - run:
          name: Install torchaudio
          command: .circleci/unittest/linux/scripts/install.sh
      - run:
          name: Run tests
          command: .circleci/unittest/linux/scripts/run_test.sh
      - run:
          name: Post process
          command: .circleci/unittest/linux/scripts/post_process.sh
      - store_test_results:
          path: test-results

541
542
543
544
545
546
547
  stylecheck:
    <<: *binary_common
    docker:
      - image: "pytorch/torchaudio_unittest_base:manylinux"
    resource_class: medium
    steps:
      - checkout
548
      - designate_upload_channel
Eli Uriegas's avatar
Eli Uriegas committed
549
      - load_conda_channel_flags
550
551
552
553
554
555
556
      - run:
          name: Setup
          command: .circleci/unittest/linux/scripts/setup_env.sh
      - run:
          name: Run style check
          command: .circleci/unittest/linux/scripts/run_style_checks.sh

557
558
559
560
561
562
563
564
565
  build_docs:
    <<: *binary_common
    docker:
      - image: "pytorch/manylinux-cuda100"
    resource_class: 2xlarge+
    steps:
      - attach_workspace:
          at: ~/workspace
      - checkout
Eli Uriegas's avatar
Eli Uriegas committed
566
      - load_conda_channel_flags
567
568
569
570
571
572
573
      - run:
          name: Install pytorch-audio
          command: .circleci/build_docs/install_wheels.sh
      - run:
          name: Build docs
          command: .circleci/build_docs/build_docs.sh
      - persist_to_workspace:
574
          root: ./
575
576
          paths:
            - "*"
577
578
579
      - store_artifacts:
          path: ./docs/build/html
          destination: docs
580
581
582
583
584
585
586
587
588

  upload_docs:
    <<: *binary_common
    docker:
      - image: "pytorch/manylinux-cuda100"
    resource_class: 2xlarge+
    steps:
      - attach_workspace:
          at: ~/workspace
589
590
591
592
593
594
595
596
597
598
      - run:
          name: Generate netrc
          command: |
            # set credentials for https pushing
            # requires the org-member context
            cat > ~/.netrc \<<DONE
              machine github.com
              login pytorchbot
              password ${GITHUB_PYTORCHBOT_TOKEN}
            DONE
599
600
601
      - run:
          name: Upload docs
          command: |
602
603
            # Don't use "checkout" step since it uses ssh, which cannot git push
            # https://circleci.com/docs/2.0/configuration-reference/#checkout
604
605
606
            set -ex
            tag=${CIRCLE_TAG:1:5}
            target=${tag:-master}
Matti Picus's avatar
Matti Picus committed
607
            ~/workspace/.circleci/build_docs/commit_docs.sh ~/workspace $target
608

609
610
611
612
613
614
615
616
617
618
619
620
  docstring_parameters_sync:
    <<: *binary_common
    docker:
      - image: circleci/python:3.8
    steps:
      - checkout
      - run:
          name: Check parameters docstring sync
          command: |
            pip install --user pydocstyle
            pydocstyle torchaudio

Edward Z. Yang's avatar
Edward Z. Yang committed
621
622
623
624
workflows:
  build:
    jobs:
      - circleci_consistency
moto's avatar
moto committed
625
626
627
628
      {{ build_workflows() }}
  unittest:
    jobs:
      {{ unittest_workflows() }}
Edward Z. Yang's avatar
Edward Z. Yang committed
629
630
  nightly:
    jobs:
moto's avatar
moto committed
631
632
633
634
      - circleci_consistency:
          filters:
            branches:
              only: nightly
moto's avatar
moto committed
635
      {{ build_workflows(prefix="nightly_", filter_branch="nightly", upload=True) }}
Mingbo Wan's avatar
Mingbo Wan committed
636
637
638
639
640
641
642
643
644
  docker_build:
    triggers:
      - schedule:
          cron: "0 10 * * 0"
          filters:
            branches:
              only:
                - master
    jobs:
645
      - smoke_test_docker_image_build