github matrix

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

github matrix

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

github matrix

Mensagem 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
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

github matrix

Mensagem por JoséQuintas »

mingw.png
Uia que bonitinho.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

github matrix

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

github matrix

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder