Основная задача - поиск тикетов в сообщениях коммитов между двумя коммитами. Из-за ограничений гитхаба может об
on: [push]
jobs:
example_job:
runs-on: ubuntu-latest
name: Example
steps:
- name: Find issues in commit messages
id: find-issues #важно, используется потом для получения output
uses: Agro-Club/github-actions/commit-messages-parser@master
with:
head: ${{ github.event.after }} #хэш коммита, который был замерджен
base: ${{ github.event.before }} #хэш предыдущего коммита в бранчеРезультат работы в данном случае будет в steps.find-issues.outputs.entries
# Токен доступа github
token:
description: "Github token"
default: ${{ github.token }}
# Так как экшены не могут выдавать массивы, результат работы будет приведен к
# строке с помощью join, поэтому есть возможность настроить разделитель
delimiter:
description: "Delimiter for array of entries"
default: ", "
# Регулярное выражение по которому ищем нужную подстроку, базовая регулярка
# ищет стандартные тикеты Jira по типу "ENT-123"
regexp:
description: "Regexp to match, defaults to Jira issue regexp"
default: "[a-zA-Z]+-[0-9]+"
# Название репозитория
repo:
description: "Repository name"
default: ${{ github.event.repository.name }}
# Владелец репозитория
owner:
description: "Repository owner"
default: ${{ github.event.repository.owner.login }}
head:
description: "Head commit"
required: true
base:
description: "Base commit"
required: trueПереводит несколько тикетов Jira к указанному статусу. Можно использовать как вместе с предыдущем экшеном, так и без него.
on: [push]
jobs:
example:
runs-on: ubuntu-latest
name: A job to transfer issues
steps:
- name: Find issues in commit messages
id: find-issues
uses: Agro-Club/github-actions/commit-messages-parser@master
with:
head: ${{ github.event.after }}
base: ${{ github.event.before }}
- name: Transfer issues
uses: Agro-Club/github-actions/actions/jira-multiple-issue-transition@master
with:
issues: ${{ steps.find-issues.outputs.issues }}
jira-token: ${{ secrets.JIRA_TOKEN }}
jira-username: ${{ secrets.JIRA_EMAIL }}
jira-url: https://agroclub.atlassian.net
jira-transition-name: "Done"# Строка с кодами тикетов. Должны быть разделены указанным delimiter
issues:
description: "Issues to transfer"
# Разделитель, который для разделения тикетов
delimiter:
description: "Issues delimiter in the issues string"
default: ","
# Url вашей компании в Jira, обязателен
jira-url:
description: "Jira URL"
required: true
# Email пользователя Jira, обязателен
jira-username:
description: "Jira username"
required: true
# Токен пользователя Jira, обязателен
jira-token:
description: "Jira token"
required: true
# Название статуса, в который переводим
jira-transition-name:
description: "Jira transition name"
# Если указано название статуса, то id передавать не нужно. И наоборот - если
# есть id, то название указывать не нужно
jira-transition-id:
description: "Jira transition id"Обновляет несколько тикетов Jira.
on: [push]
jobs:
example:
runs-on: ubuntu-latest
name: A job to transfer issues
steps:
- name: Find issues in commit messages
id: find-issues
uses: Agro-Club/github-actions/commit-messages-parser@master
with:
head: ${{ github.event.after }}
base: ${{ github.event.before }}
- name: Transfer issues
uses: Agro-Club/github-actions/actions/jira-multiple-issue-transition@master
with:
issues: ${{ steps.find-issues.outputs.issues }}
jira-token: ${{ secrets.JIRA_TOKEN }}
jira-username: ${{ secrets.JIRA_EMAIL }}
jira-url: https://agroclub.atlassian.net
jira-transition-name: "Done"# Строка с кодами тикетов. Должны быть разделены указанным delimiter
issues:
description: "Issues to transfer"
# Разделитель, который для разделения тикетов
delimiter:
description: "Issues delimiter in the issues string"
default: ","
# Url вашей компании в Jira, обязателен
jira-url:
description: "Jira URL"
required: true
# Email пользователя Jira, обязателен
jira-username:
description: "Jira username"
required: true
# Токен пользователя Jira, обязателен
jira-token:
description: "Jira token"
required: true
# Строка json с полями, которые нужно обновить.
request-body:
description: "Must be a json string. For example see request example in\nhttps://developer.atlassian.com/cloud/jira/platform/rest/v3/api-group-issues/#api-rest-api-3-issue-issueidorkey-put"
required: trueГенерирует группы тестов для параллельного запуска в CI.
on: [push]
jobs:
example:
runs-on: ubuntu-latest
name: A job to transfer issues
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Find issues in commit messages
id: find-issues
uses: Agro-Club/github-actions/spec-group-generator@master
with:
count: 5
tests: "!(node_modules)/**/*.*(js|ts|jsx|tsx)"
results: "spec-group-generator/example-results/**/*.xml"# Количество групп
count:
description: "Num of parallel runs"
required: true
# Шаблон для поиска файлов с тестами в формате glob
tests:
description: "Path to the tests folder"
default: "cypress/**/*.*(js|ts|jsx|tsx)"
# Шаблон для поиска файлов с тестами в формате glob
results:
description: "Path to the folder where the test results are stored"
default: "results/**/*.xml"