-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #201 from totvs/estudo_versao_main
Estudo versao main
- Loading branch information
Showing
8 changed files
with
601 additions
and
53 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
name: Atualizar Versão de Cada Layout | ||
on: | ||
workflow_run: | ||
workflows: ["Criar Tag e Release"] # Espera a execução do workflow "Criar Tag e Release" | ||
types: [completed] # Executa quando o workflow "Criar Tag e Release" for completado (independentemente de sucesso ou falha) | ||
|
||
permissions: | ||
contents: read # Permite ao GITHUB_TOKEN fazer push para o repositório | ||
|
||
jobs: | ||
executa-script-py: | ||
runs-on: ubuntu-latest | ||
steps: | ||
|
||
- uses: actions/checkout@v3 | ||
|
||
- name: Set up Python environment | ||
uses: actions/setup-python@v3 | ||
with: | ||
python-version: '3.x' # Especifica a versão do Python que você deseja | ||
|
||
- name: Install gitpython | ||
run: | | ||
pip install gitpython | ||
- name: Configurar o token do GitHub CLI | ||
run: | | ||
echo "GITHUB_TOKEN=${{ secrets.GH_TOKEN }}" >> $GITHUB_ENV | ||
- name: Listar todas as execuções de workflows | ||
run: | | ||
gh run list --repo deyvidksc/winthor-smart-hub-layouts # Lista todas as execuções de workflow no repositório | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Usando o token correto para autenticação | ||
|
||
- name: Listar todas as execuções de workflows e extrair o nome da branch | ||
run: | | ||
# Lista todas as execuções de workflow no repositório, filtrando pelo nome do workflow e pelo status de sucesso | ||
# workflow_runs=$(gh run list --repo ${{ github.repository }} --workflow "Criar Artefato com Nome da Branch" --json headBranch,status,conclusion -q 'map(select(.status == "completed" and .conclusion == "success")) | .[].headBranch' | sort -u | head -n 1) | ||
# workflow_runs=$(gh run list --repo ${{ github.repository }} --workflow "Criar Artefato com Nome da Branch" --json headBranch,status,conclusion -q 'map(select(.status == "completed" and .conclusion == "success")) | .[].headBranch | unique | sort | last') | ||
workflow_runs=$(gh run list --repo ${{ github.repository }} --workflow "Criar Artefato com Nome da Branch" --json headBranch,status,conclusion -q 'map(select(.status == "completed" and .conclusion == "success")) | .[].headBranch' | sort | tail -n 1) | ||
# Exibe o resultado da lista para debug | ||
echo "Execuções de workflow 'Criar Artefato com Nome da Branch' bem-sucedidas encontradas: $workflow_runs" | ||
# Verifica se a variável workflow_runs contém algum valor | ||
if [ -z "$workflow_runs" ]; then | ||
echo "Nenhuma execução bem-sucedida do workflow 'Criar Artefato com Nome da Branch' foi encontrada." | ||
exit 1 | ||
fi | ||
# Agora, BRANCH_ORIGEM será o valor de workflow_runs (que é o nome da branch) | ||
BRANCH_ORIGEM=$workflow_runs | ||
# Exibe o nome da branch extraído | ||
echo "Nome da branch extraído: $BRANCH_ORIGEM" | ||
# Exporta BRANCH_ORIGEM como variável de ambiente para ser usado nas próximas etapas | ||
echo "BRANCH_ORIGEM=$BRANCH_ORIGEM" >> $GITHUB_ENV | ||
# Determinando a branch base | ||
if [ -n "${{ github.event.pull_request }}" ]; then | ||
# Se for um PR, usamos o base ref (branch de destino do PR) | ||
BRANCH_DESTINO="${{ github.base_ref }}" | ||
else | ||
# Se não for PR, define a branch destino para uma valor fixo ou usa a branch de onde o workflow foi executado | ||
BRANCH_DESTINO=${GITHUB_REF##*/} | ||
fi | ||
echo "BRANCH_DESTINO=$BRANCH_DESTINO" >> $GITHUB_ENV | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Usando o token correto para autenticação | ||
|
||
- name: Run script atualizar-versao-cada-layout | ||
run: | | ||
echo "Passando parâmetros para o script Python:" | ||
echo "Token: ${{ secrets.GH_TOKEN }}" | ||
echo "Branch de Origem: $BRANCH_ORIGEM" | ||
echo "Branch de Destino: $BRANCH_DESTINO" | ||
python scripts/atualizar-versao-cada-layout.py ${{ secrets.GH_TOKEN }} $BRANCH_ORIGEM $BRANCH_DESTINO |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Criar Artefato com Nome da Branch | ||
on: | ||
pull_request: | ||
types: | ||
- closed | ||
branches: | ||
- main | ||
- develop # ou qualquer outra branch de interesse | ||
|
||
jobs: | ||
cria-artefato: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout do código | ||
uses: actions/checkout@v3 | ||
|
||
- name: Criar diretório temporário | ||
run: mkdir -p temp/ # Cria o diretório temp se não existir | ||
|
||
- name: Criar arquivo com o nome da branch | ||
run: echo "${{ github.event.pull_request.head.ref }}" > "temp/branch-name.txt" # Grava o nome da branch no arquivo dentro do diretório temp | ||
|
||
- name: Fazer upload do artefato | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: branch-name-artifact # Nome do artefato | ||
path: "temp/branch-name.txt" # Caminho do arquivo a ser enviado como artefato |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
name: Criar Tag e Release | ||
on: | ||
workflow_run: | ||
workflows: ["Criar Artefato com Nome da Branch"] # Espera a execução do workflow "Criar Tag e Release" | ||
types: [completed] # Executa quando o workflow "Criar Tag e Release" for completado (independentemente de sucesso ou falha) | ||
|
||
#pull_request: | ||
#types: | ||
#- closed | ||
#branches: | ||
#- main | ||
#- develop | ||
|
||
permissions: | ||
contents: write # Permite ao GITHUB_TOKEN fazer push para o repositório | ||
|
||
jobs: | ||
cria-tag-release-on-push: | ||
runs-on: ubuntu-latest | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Use o token correto aqui | ||
steps: | ||
- name: Checkout do código | ||
uses: actions/checkout@v3 | ||
|
||
- name: Ler versão atual | ||
id: read_version | ||
run: | | ||
VERSION_FILE="version.txt" | ||
if [[ -f "$VERSION_FILE" ]]; then | ||
VERSION=$(cat $VERSION_FILE) | ||
else | ||
VERSION="1.0.0.0" # Caso o arquivo de versão não exista, começar com a versão inicial | ||
fi | ||
echo "VERSAO_ATUAL=$VERSION" >> $GITHUB_ENV | ||
- name: Incrementar versão | ||
id: increment_version | ||
run: | | ||
VERSION=${{ env.VERSAO_ATUAL }} | ||
BRANCH_NAME=${GITHUB_REF#refs/heads/} | ||
# Extrair os 4 componentes da versão | ||
IFS='.' read -r -a version_parts <<< "$VERSION" | ||
# Se a versão tem 4 componentes (major.minor.patch.build), processa | ||
if [ ${#version_parts[@]} -eq 4 ]; then | ||
major=${version_parts[0]} | ||
minor=${version_parts[1]} | ||
patch=${version_parts[2]} | ||
build=${version_parts[3]} | ||
else | ||
echo "A versão não está no formato esperado (major.minor.patch.build)." | ||
exit 1 | ||
fi | ||
# Incrementa com base na branch | ||
if [[ "$BRANCH_NAME" == "main" ]]; then | ||
# Para main, incrementa o build | ||
build=$((build + 1)) | ||
elif [[ "$BRANCH_NAME" == "develop" ]]; then | ||
# Para develop, incrementa o patch e o build é resetado para 1 | ||
patch=$((patch + 1)) | ||
build=1 | ||
else | ||
echo "Branch não reconhecida para incremento de versão." | ||
exit 1 | ||
fi | ||
# Cria a nova versão | ||
NEW_VERSION="${major}.${minor}.${patch}.${build}" | ||
echo "Nova versão: $NEW_VERSION" | ||
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV | ||
- name: Atualizar o arquivo de versão | ||
run: | | ||
echo ${{ env.NEW_VERSION }} > version.txt | ||
git config --global user.name "GitHub Actions" | ||
git config --global user.email "actions@github.com" | ||
git add version.txt | ||
git commit -m "Atualizando versão para ${{ env.NEW_VERSION }}" | ||
git push origin ${{ github.ref }} | ||
- name: Criar Tag com a versão | ||
run: | | ||
# Criar uma tag usando a versão gerada | ||
git tag "v${{ env.NEW_VERSION }}" | ||
git push origin "v${{ env.NEW_VERSION }}" --force | ||
- name: Gerar Release | ||
id: create_release | ||
uses: actions/create-release@v1 | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
with: | ||
use_github_release_notes: true | ||
tag_name: ${{ env.NEW_VERSION }} | ||
release_name: Release ${{ env.NEW_VERSION }} | ||
draft: false | ||
prerelease: false | ||
|
||
|
||
# - name: Gerar Release | ||
# uses: rymndhng/release-on-push-action@master | ||
# with: | ||
# use_github_release_notes: true | ||
# tag_prefix: "" | ||
# release_name: ${{ env.NEW_VERSION }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: Validar todos Arquivos JSON | ||
|
||
on: | ||
pull_request: | ||
types: [opened, synchronize, reopened] # Este evento dispara quando o PR é aberto, sincronizado ou reaberto | ||
jobs: | ||
validate-json: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Set up Node.js | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: '14' | ||
|
||
- name: Install jq | ||
run: sudo apt-get install jq | ||
|
||
- name: Validate JSON files | ||
run: | | ||
# Encontra todos os arquivos JSON e os valida | ||
find . -type f -name '*.json' -print0 | while IFS= read -r -d '' file; do | ||
echo "Validating $file" | ||
jq empty "$file" || { echo "Invalid JSON: $file"; exit 1; } | ||
done |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"projeto": "pdvsync", | ||
"versao": "1.35.0.165" | ||
} |
Oops, something went wrong.