Skip to content

Commit 55a97ea

Browse files
author
Xikaro
committed
del: workflows ci.yml
1 parent a662e4c commit 55a97ea

File tree

2 files changed

+99
-197
lines changed

2 files changed

+99
-197
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 76 deletions
This file was deleted.

README.md

Lines changed: 99 additions & 121 deletions
Original file line numberDiff line numberDiff line change
@@ -1,135 +1,113 @@
11
# Actions
2-
# Composite actions for TerraFirmaGreg repos
2+
# Composite actions for TerraFirmaGreg
33

4-
## Общая информация
5-
Репозиторий содержит набор **composite actions** для сборки и релизов модпака `TerraFirmaGreg`. Каждое действие подключается на уровне шага (`uses`) внутри job целевого workflow.
4+
## Обзор
5+
Пакет готовых **composite actions** для автоматизации жизненного цикла модпака `TerraFirmaGreg`. Набор покрывает сборку, публикацию, создание PR и уведомления. Действия вызываются напрямую внутри job, обеспечивая единообразие между репозиториями модпаков.
66

7+
## Структура
8+
- `info/` — подготовка метаданных релиза (версия, changelog, diff).
9+
- `build/` — сборка артефактов (CurseForge, Modrinth, Serverpack, MultiMC).
10+
- `release/` — публикация на GitHub/CurseForge/Modrinth, закрытие задач.
11+
- `create-pr/` — создание релизного PR.
12+
- `message/` — отправка уведомления в Discord.
13+
- `tests/` — фикстуры для smoke-тестов.
14+
- `.github/workflows/ci.yml` — линтинг и smoke-тесты.
15+
- `.github/workflows/release.yml` — автогенерация релизов.
16+
17+
## Сводка действий
18+
| Action | Назначение | Основные входы | Ключевые выходы |
19+
| --- | --- | --- | --- |
20+
| `info` | Подготовка метаданных, changelog, diff | `stable_branch`, `dev_branch`, `pakku_diff_enabled` | `project_*`, `changelog`, `diff`, `make_release`, `make_pr` |
21+
| `build` | Экспорт и упаковка артефактов | `project_*`, флаги `artifact_*` | `curseforge_name`, `modrinth_name`, `server_name`, `multimc_name` |
22+
| `release` | Публикация релиза и закрытие задач | `project_full_name`, `project_version`, `enable_release_*` | `github_release_url`, `curseforge_file_id`, `modrinth_release_id` |
23+
| `create-pr` | Создание релизного PR | `project_*`, `changelog` | `pr_number`, `pr_url` |
24+
| `message` | Discord уведомление | `webhook_secret`, `content` ||
25+
26+
## Базовое использование
727
```yaml
828
jobs:
9-
job-id:
29+
info:
1030
runs-on: ubuntu-latest
31+
outputs:
32+
project_name: ${{ steps.collect.outputs.project_name }}
33+
project_version: ${{ steps.collect.outputs.project_version }}
34+
project_full_name: ${{ steps.collect.outputs.project_full_name }}
35+
release_type: ${{ steps.collect.outputs.release_type }}
36+
mc_version: ${{ steps.collect.outputs.mc_version }}
37+
changelog: ${{ steps.collect.outputs.changelog }}
38+
diff: ${{ steps.collect.outputs.diff }}
39+
make_release: ${{ steps.collect.outputs.make_release }}
40+
make_pr: ${{ steps.collect.outputs.make_pr }}
1141
steps:
12-
- name: Run action
13-
id: step-id
14-
uses: TerraFirmaGreg-Team/Actions/<action>@v1
42+
- name: 🖥️ Collect info
43+
id: collect
44+
uses: TerraFirmaGreg-Team/Actions/info@1.0.0
1545
with:
16-
# входные параметры
17-
env:
18-
# дополнительные переменные, если нужны
19-
```
46+
stable_branch: main
47+
dev_branch: dev
2048

21-
### `info`
22-
- **Назначение**: Сбор метаданных модпака, подготовка changelog, diff, определение необходимости релиза и PR.
23-
- **Входы**: `stable_branch`, `dev_branch`, `changelog_path`, `changelog_unreleased_label`, `pakku_diff_enabled`.
24-
- **Выходы**: `project_*`, `release_type`, `mc_version`, `loader_*`, `changelog`, `diff`, `tag_exists`, `make_release`, `make_pr`.
25-
- **Пример**:
26-
```yaml
27-
jobs:
28-
info:
29-
runs-on: ubuntu-latest
30-
outputs:
31-
project_name: ${{ steps.collect.outputs.project_name }}
32-
project_version: ${{ steps.collect.outputs.project_version }}
33-
project_full_name: ${{ steps.collect.outputs.project_full_name }}
34-
release_type: ${{ steps.collect.outputs.release_type }}
35-
mc_version: ${{ steps.collect.outputs.mc_version }}
36-
changelog: ${{ steps.collect.outputs.changelog }}
37-
diff: ${{ steps.collect.outputs.diff }}
38-
make_release: ${{ steps.collect.outputs.make_release }}
39-
make_pr: ${{ steps.collect.outputs.make_pr }}
40-
steps:
41-
- name: Collect info
42-
id: collect
43-
uses: TerraFirmaGreg-Team/Actions/info@v1
44-
with:
45-
stable_branch: main
46-
dev_branch: dev
47-
```
49+
build:
50+
needs: info
51+
runs-on: ubuntu-latest
52+
steps:
53+
- uses: TerraFirmaGreg-Team/Actions/build@1.0.0
54+
with:
55+
project_name: ${{ needs.info.outputs.project_name }}
56+
project_version: ${{ needs.info.outputs.project_version }}
57+
project_full_name: ${{ needs.info.outputs.project_full_name }}
4858

49-
### `create-pr`
50-
- **Назначение**: Создание релизного PR.
51-
- **Входы**: `enabled`, `source_branch`, `target_branch`, `project_*`, `changelog`, шаблоны заголовка/тела.
52-
- **Выходы**: `pr_number`, `pr_url`. **Секреты**: `GITHUB_TOKEN`.
53-
- **Пример**:
54-
```yaml
55-
jobs:
56-
create_pr:
57-
needs: info
58-
if: needs.info.outputs.make_pr == 'true'
59-
runs-on: ubuntu-latest
60-
steps:
61-
- uses: TerraFirmaGreg-Team/Actions/create-pr@v1
62-
with:
63-
project_name: ${{ needs.info.outputs.project_name }}
64-
project_version: ${{ needs.info.outputs.project_version }}
65-
project_full_name: ${{ needs.info.outputs.project_full_name }}
66-
changelog: ${{ needs.info.outputs.changelog }}
67-
env:
68-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
69-
```
59+
release:
60+
needs: [info, build]
61+
if: needs.info.outputs.make_release == 'true'
62+
runs-on: ubuntu-latest
63+
steps:
64+
- uses: TerraFirmaGreg-Team/Actions/release@1.0.0
65+
with:
66+
project_full_name: ${{ needs.info.outputs.project_full_name }}
67+
project_version: ${{ needs.info.outputs.project_version }}
68+
release_type: ${{ needs.info.outputs.release_type }}
69+
changelog: ${{ needs.info.outputs.changelog }}
70+
diff: ${{ needs.info.outputs.diff }}
71+
mc_version: ${{ needs.info.outputs.mc_version }}
72+
env:
73+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74+
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
75+
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
7076

71-
### `build`
72-
- **Назначение**: Экспорт артефактов (CurseForge, Modrinth, serverpack, MultiMC).
73-
- **Входы**: `project_*`, `release_type`, флаги `artifact_*`, `apply_version_overrides`, `pakku_arguments`.
74-
- **Выходы**: `curseforge_name`, `modrinth_name`, `server_name`, `multimc_name`.
75-
- **Пример**:
76-
```yaml
77-
jobs:
78-
build:
79-
needs: info
80-
runs-on: ubuntu-latest
81-
steps:
82-
- uses: TerraFirmaGreg-Team/Actions/build@v1
83-
with:
84-
project_name: ${{ needs.info.outputs.project_name }}
85-
project_version: ${{ needs.info.outputs.project_version }}
86-
project_full_name: ${{ needs.info.outputs.project_full_name }}
87-
```
77+
message:
78+
needs: [info, release]
79+
if: needs.info.outputs.make_release == 'true'
80+
runs-on: ubuntu-latest
81+
steps:
82+
- uses: TerraFirmaGreg-Team/Actions/message@1.0.0
83+
with:
84+
webhook_secret: DISCORD_RELEASES
85+
content: |
86+
**Release**: `${{ needs.info.outputs.project_version }}`
87+
**Game Version**: `${{ needs.info.outputs.mc_version }}`
88+
mention_role_id: ${{ vars.DISCORD_ROLE_RELEASE }}
89+
```
8890
89-
### `release`
90-
- **Назначение**: Публикация релиза на GitHub, CurseForge, Modrinth, закрытие задач.
91-
- **Входы**: `enabled`, `project_full_name`, `project_version`, `release_type`, `changelog`, `diff`, `mc_version`, флаги публикаций и дополнительные параметры.
92-
- **Выходы**: `github_release_url`, `curseforge_file_id`, `modrinth_release_id`.
93-
- **Секреты / Vars**: `GITHUB_TOKEN`, `CURSEFORGE_TOKEN`, `vars.CURSEFORGE_ID`, `MODRINTH_TOKEN`.
94-
- **Пример**:
95-
```yaml
96-
jobs:
97-
release:
98-
needs: [info, build]
99-
if: needs.info.outputs.make_release == 'true'
100-
runs-on: ubuntu-latest
101-
steps:
102-
- uses: TerraFirmaGreg-Team/Actions/release@v1
103-
with:
104-
project_full_name: ${{ needs.info.outputs.project_full_name }}
105-
project_version: ${{ needs.info.outputs.project_version }}
106-
release_type: ${{ needs.info.outputs.release_type }}
107-
changelog: ${{ needs.info.outputs.changelog }}
108-
diff: ${{ needs.info.outputs.diff }}
109-
mc_version: ${{ needs.info.outputs.mc_version }}
110-
env:
111-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
112-
CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }}
113-
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
91+
## Релизы
92+
- Workflow `release.yml` автоматически создаёт GitHub Release при изменениях в директориях action-ов и документации.
93+
- Версионирование — семантическое, теги формата `1.0.0`.
94+
- Для ручного тега:
95+
```bash
96+
git tag 1.0.0
97+
git push origin 1.0.0
11498
```
99+
- Для ручного запуска релизного workflow используйте `workflow_dispatch` с ветки `main`.
100+
- После релиза обновите внешние репозитории:
101+
- `info` → `TerraFirmaGreg-Team/Actions/info@1.0.0`
102+
- `build` → `TerraFirmaGreg-Team/Actions/build@1.0.0`
103+
- `release` → `TerraFirmaGreg-Team/Actions/release@1.0.0`
104+
- `create-pr` → `TerraFirmaGreg-Team/Actions/create-pr@1.0.0`
105+
- `message` → `TerraFirmaGreg-Team/Actions/message@1.0.0`
115106

116-
### `message`
117-
- **Назначение**: Отправка уведомления в Discord.
118-
- **Входы**: `enabled`, `webhook_secret`, `username`, `avatar_url`, `content`, `embed_title`, `embed_description`, `mention_role_id`, `truncate_length`.
119-
- **Выходы**: отсутствуют. **Секреты**: `secrets[inputs.webhook_secret]`.
120-
- **Пример**:
121-
```yaml
122-
jobs:
123-
message:
124-
needs: [info, release]
125-
if: needs.info.outputs.make_release == 'true'
126-
runs-on: ubuntu-latest
127-
steps:
128-
- uses: TerraFirmaGreg-Team/Actions/message@v1
129-
with:
130-
webhook_secret: DISCORD_RELEASES
131-
content: |
132-
**Release**: `${{ needs.info.outputs.project_version }}`
133-
**Game Version**: `${{ needs.info.outputs.mc_version }}`
134-
mention_role_id: ${{ vars.DISCORD_ROLE_RELEASE }}
135-
```
107+
## Документация по действиям
108+
Подробности (включая примеры и таблицы входов/выходов) находятся в файлах:
109+
- `info/README.md`
110+
- `build/README.md`
111+
- `release/README.md`
112+
- `create-pr/README.md`
113+
- `message/README.md`

0 commit comments

Comments
 (0)