-
Notifications
You must be signed in to change notification settings - Fork 0
174 lines (146 loc) · 6.76 KB
/
modules-chart-update.yaml
File metadata and controls
174 lines (146 loc) · 6.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
---
# GitHub Actions workflow para atualizar dependências dos Helm charts da Modern Gitops Stack.
#
# Este workflow automatiza a atualização das dependências dos charts utilizados na infraestrutura
# Modern Gitops Stack, criando PRs para facilitar a revisão e deploy das atualizações.
name: "modules-chart-update"
on:
workflow_call:
secrets:
PROJECT_APP_PRIVATE_KEY:
description: "GitHub token para o projeto Modern Gitops Stack"
required: true
inputs:
update-strategy:
description: "Estratégia de atualização. Valores válidos: 'major', 'minor' ou 'patch'"
type: string
required: true
excluded-dependencies:
description: "Lista separada por vírgulas de dependências a excluir (ex: 'dependency1,dependency2')"
type: string
required: false
default: ""
dry-run:
description: "Se deve executar em modo dry-run ou não"
type: boolean
required: false
default: false
jobs:
list-charts:
name: "Listar charts Modern Gitops Stack"
runs-on: ubuntu-latest
outputs:
charts: ${{ steps.find-charts.outputs.charts }}
steps:
- name: "Fazer checkout do repositório Modern Gitops Stack"
uses: actions/checkout@v6
- name: "Listar charts na pasta ./charts"
id: find-charts
run: cd charts && echo "charts=$(find . -maxdepth 2 -name 'Chart.yaml' -exec dirname {} \; | sed 's|^\./||' | sort -u | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
chart-update:
name: "Atualizar chart: ${{ matrix.chart-name }}"
runs-on: ubuntu-latest
needs: list-charts
strategy:
matrix:
chart-name: ${{ fromJson(needs.list-charts.outputs.charts) }}
# Define global settings for both PR steps.
env:
author: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
steps:
- name: "Fazer checkout do repositório Modern Gitops Stack"
uses: actions/checkout@v6
- name: "Atualizar dependências do Helm chart"
id: deps-update
uses: camptocamp/helm-dependency-update-action@v0.5.0
with:
chart-path: "charts/${{ matrix.chart-name }}"
readme-path: "README.adoc"
excluded-dependencies: ${{ inputs.excluded-dependencies }}
update-strategy: "${{ inputs.update-strategy }}"
dry-run: "${{ inputs.dry-run }}"
- name: "Criar Pull Request para atualização minor/patch"
if: ${{ !inputs.dry-run && steps.deps-update.outputs.update-type != 'none' && steps.deps-update.outputs.update-type != 'major' }}
id: minor-pr
uses: peter-evans/create-pull-request@v8
env:
pr-title: "feat(chart): atualização ${{ steps.deps-update.outputs.update-type }} de dependências no chart ${{ matrix.chart-name }}"
branch: "chart-autoupdate-${{ steps.deps-update.outputs.update-type }}-${{ matrix.chart-name }}"
labels: "chart-autoupdate-${{ steps.deps-update.outputs.update-type }}"
with:
token: ${{ secrets.PROJECT_APP_PRIVATE_KEY }}
base: ${{ github.head_ref }}
commit-message: ${{ env.pr-title }}
author: ${{ env.author }}
committer: ${{ env.author }}
branch: "chart-autoupdate-${{ steps.deps-update.outputs.update-type }}-${{ matrix.chart-name }}"
title: ${{ env.pr-title }}
labels: "chart-autoupdate-${{ steps.deps-update.outputs.update-type }}"
signoff: true
assignees: GersonRS
reviewers: GersonRS
delete-branch: true
body: |
🤖 Atualizei o chart automaticamente do Modern Gitops Stack *beep* *boop*
---
## 📋 Descrição
### O que mudou?
Este PR atualiza as dependências do Helm chart **${{ matrix.chart-name }}** do Modern Gitops Stack.
### Por que foi necessário?
Atualização automática para manter os charts seguros e atualizados.
## 🔧 Tipo de Mudança
- [x] 🔧 Configuração/Charts
## 📊 Detalhes da Atualização
- **Chart**: ${{ matrix.chart-name }}
- **Tipo de atualização**: ${{ steps.deps-update.outputs.update-type }}
- **Estratégia**: Atualização automática segura
## ✅ Checklist
- [x] Dependências atualizadas automaticamente
- [x] Seguindo conventional commits
- [x] Labels apropriadas aplicadas
- name: "Criar Pull Request para atualização major"
if: ${{ !inputs.dry-run && steps.deps-update.outputs.update-type != 'none' && steps.deps-update.outputs.update-type == 'major' }}
id: major-pr
uses: peter-evans/create-pull-request@v8
env:
pr-title: "feat(chart)!: atualização major de dependências no chart ${{ matrix.chart-name }}"
with:
token: ${{ secrets.PROJECT_APP_PRIVATE_KEY }}
base: ${{ github.head_ref }}
commit-message: ${{ env.pr-title }}
author: ${{ env.author }}
committer: ${{ env.author }}
branch: "chart-autoupdate-major-${{ matrix.chart-name }}"
title: ${{ env.pr-title }}
labels: "chart-autoupdate-major"
signoff: true
assignees: GersonRS
reviewers: GersonRS
delete-branch: true
body: |
🤖 Atualizei o chart automaticamente do Modern Gitops Stack *beep* *boop*
---
## 📋 Descrição
### O que mudou?
Este PR atualiza as dependências do Helm chart **${{ matrix.chart-name }}** do Modern Gitops Stack.
### Por que foi necessário?
Atualização automática para manter os charts seguros e atualizados.
## 🔧 Tipo de Mudança
- [x] 💥 Breaking change
- [x] 🔧 Configuração/Charts
## ⚠️ Atenção - Atualização Major!
Esta foi uma **atualização major**! Por favor:
1. 📖 Verifique o changelog das dependências atualizadas
2. 🔍 Revise cuidadosamente as breaking changes
3. 🧪 Teste em ambiente de desenvolvimento antes do merge
4. 📚 Atualize a documentação se necessário
## 📊 Detalhes da Atualização
- **Chart**: ${{ matrix.chart-name }}
- **Tipo**: Major update (pode conter breaking changes)
- **Componentes afetados**: Modern Gitops Stack
## ✅ Checklist de Revisão
- [ ] Verificar changelog das dependências
- [ ] Revisar breaking changes
- [ ] Testar em ambiente de desenvolvimento
- [ ] Validar impacto no Modern Gitops Stack
- [ ] Atualizar documentação se necessário