Página 1 de 1

github matrix

Enviado: 17 Abr 2025 22:05
por JoséQuintas
Aprendi uma nova, colocando em prática.
Reduzir mais os workflows
Isso de matrix

Código: Selecionar todos

#
# mingw_.yml
#
# input:  mingw_0703.zip
# input:  mingw_1420.zip
# input:  mingw_1500.zip
# output: mingw_0703.zip
# output: mingw_1420.zip
# output: mingw_xxxx.zip
#

name: mingw

on:
#  push:
  schedule:
   - cron: "0 3 1 * *"
  workflow_dispatch:
    inputs:
      name:
        description: 'mingw'
        default: 'mingw'
        required: true

jobs:

  mingw0703:
    runs-on: windows-latest

    strategy:
       matrix:
          compiler:
          - mingw_0703
          - mingw_1420
          - mingw_1500
    steps:

    - name: load mingw_xxxx.zip from workflow
      uses: dawidd6/action-download-artifact@v6
      with:
         workflow: mingw.yml
         workflow_conclusion: success
         name: ${{matrix.compiler}}
         path: c:\temp
         repo: JoseQuintas/sefazclass

    - name: Save mingw_xxxx.zip to workflow
      uses: actions/upload-artifact@v4
      with:
         name: ${{matrix.compiler}}
         path: c:\temp\${{matrix.compiler}}.7z
isto aqui:

Código: Selecionar todos


    strategy:
       matrix:
          compiler:
          - mingw_0703
          - mingw_1420
          - mingw_1500
Tradução básica pra usuário de harbour:
Isso cria o array compiler { "mingw_0703", "mingw_1420", "mingw_1500" }

Vai executar tudo 3 vezes, cada uma com um elemento do array, como se fosse o FOR/EACH
Vai executar pra mingw 7.3, 14.2 e 15.0

Transformei 3 configurações em uma só.

E isso é usado como macro dentro do worflow.
ou pode criar IFs..., CASES... etc. pra condições diferentes.
De repente pra bibliotecas gráficas diferentes, ou pra Windows/Linux.

Legal.
Nem sei pra que compilar nos 3, mas de graça, vamos aprendendo.

github matrix

Enviado: 17 Abr 2025 22:14
por JoséQuintas
Achei uma utilidade.
Esse daí é bom fazer 3 vezes, porque revalida os ZIPs.
Os outros, posso deixar pra fazer só um, e fica guardado como fazer dos 3.

Ou juntar os 4, fazer outra matrix pra
- mingw
- harbour
- addons
- pacote

e colocar pra executar conforme condição.
Se for teste, só o número 3
Mensalmente todos.

Sei lá se consigo, testar se é push, schedule ou dispatch

github matrix

Enviado: 17 Abr 2025 22:17
por JoséQuintas
mingw.png
Uia que bonitinho.

github matrix

Enviado: 18 Abr 2025 21:32
por JoséQuintas
Aprendi mais um.
Mas o fórum não deixa colocar aqui.
Pra testar se é evento push - isso é quando vai salvando alterações.

github matrix

Enviado: 19 Abr 2025 06:45
por JoséQuintas
workflow.png
Resultado da execução
mingw de cada versão
harbour gerado em cada versão
todas as libs geradas em cada versão

Mas nas atualizações, vai pular a geração do harbour e vai usar o que está salvo.

E fica tudo salvo, igual pendrive.