В нашем цикле коммитов есть два задания. Первый (build_and_test
) создает наш проект iOS и запускает некоторые из наших модульных тестов. Второй (build_and_snapshot
) создает наш проект iOS и запускает несколько более продолжительных тестов пользовательского интерфейса. Мы хотим, чтобы build_and_test
запускался при каждом коммите, включая коммиты, сделанные в ветвях, а более продолжительный build_and_snapshot
- только на мастере.
Однако мы также хотели бы иметь возможность при выполнении команды build_and_snapshot
на ветке. Поэтому мы добавили действие GitHub, чтобы при добавлении следующего PR-комментария: /snapshot <branch_name>
circleci запускает build_and_snapshot
в ветке <branch_name>
.
Это наш YAML-файл рабочего процесса:
name: Comment commands handler
on:
issue_comment:
types: [created]
jobs:
snapshot:
runs-on: macos-latest
if: contains(github.event.comment.body, '/snapshot') && github.event.issue.pull_request
steps:
- name: Run snapshots job
shell: bash
run: BRANCH_NAME=${COMMENT_BODY#* } && curl -u our_circle_ci_api_key -d build_parameters[CIRCLE_JOB]=build_and_snapshot "https://circleci.com/api/v1.1/project/gh/project/repo/tree/${BRANCH_NAME}"
env:
COMMENT_BODY: ${{ github.event.comment.body }}
Это работает, но отменяет build_and_test
, если работает. Я думаю, что это из-за настройки окружности, которая отменяет избыточные сборки. Есть ли способ обойти это, кроме отключения этой настройки? Нужно ли нам опрашивать и ждать, пока build_and_test
не закончится?