Quem quiser usar as máquinas do github

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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

Como eu já disse por aqui, o mais prático é fazer um fork da sefazclass.
Vai ter tudo funcionando no seu fork.
Mas tudo está com os endereços originais, então DEPOIS de fazer o fork e rodar pelo menos uma vez, vai poder fazer o seu próprio.

As rotinas são chamadas de WORKFLOW.
As rotinas são públicas, em projetos públicos.
O fonte faz parte do projeto, mas não a execução.

O workflow pode funcionar igual um pendrive pra guardar coisas.
Uso esse recurso, acho que não é muito comum fazerem isso.
Pode guardar arquivos "escondidos", digamos assim.

O github também disponibiliza rotinas prontas pra certas coisas, como a que eu uso, pra salvar/restaurar zip de/para workflow.

Ele é meio chato, no que se refere a alinhamento, espaços em branco, etc.
Então é bom pegar um modelo como ponto de partida.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

Vamos lá ao primeiro da minha lista.
É o do mingw.

Código: Selecionar todos

    - name: mingw 7.3
      uses: dawidd6/action-download-artifact@v3
      with:
         workflow: mingw_0703.yml
         workflow_conclusion: success
         name: mingw_0703
         path: c:\temp
         repo: JoseQuintas/sefazclass
Esse usa uma rotina pronta do github.
Isso vai procurar a última execução válida de mingw_0703.yml, e baixar o mingw_0703.zip que tiver nele.
É o compilador C que vou usar.

Tá com o endereço de JoseQuintas.
Ao fazer um fork, seu fork não vai ter nada.
Não adianta alterar isso no seu fork, porque ainda não tem o zip.
Deixe executar uma vez, e passa a ter o ZIP.
Depois é só trocar o JoseQuintas/sefazclass pelo nome do seu projeto no github.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

Código: Selecionar todos

    - name: Save
      uses: actions/upload-artifact@v4
      with:
         name: mingw_0703
         path: c:\temp\mingw_0703.7z
Também usa rotina pronta do github.
Isso salva o zip como anexo do workflow, como um pendrive.

O ZIP no github tem validade de 90 dias.
Se não atualizar o projeto em 90 dias, tudo se perde.
Por isso configurei esse workflow pra rodar sozinho todo mes.
Este e o anterior são no mesmo workflow.
Ele pega o ZIP existente, e salva de novo.
Com isso, temos um zip novo todo mês, com validade de 90 dias.

Nem precisa dizer:
Isso de salvar/restaurar zip é útil.
todo workflow tem pelo menos um desses.

E como salvar outra coisa ?
Pesquise.
Dá pra usar powershell e fazer download da internet, dá pra usar o próprio projeto pra salvar alguma coisa, e depois de zipado apagar.
De um jeito ou de outro, dá pra mandar coisa pra lá.

Mas ao fazer o fork da sefazclass, e executar esse mingw_0703, vai ter uma cópia do mingw 7.3, sem fazer mais nada.
Pra teste tá bom.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

O próximo é o do harbour.

Uso o anterior do mingw, pra ter o mingw.
Como é ZIP, tem que descompactar.
E como vou usar a pasta harbour\comp, e os fontes do harbour, primeiro baixo o harbour.

Como é que a gente baixa na máquina ?
pode ser usando GIT, lá é igual

Código: Selecionar todos

    - name: Load Source Code
      env:
         REPO: JoseQuintas/harbour32
      run: |
         c:
         git clone https://github.com/$env:repo c:\temp\harbour32 --depth 1
         cd \temp\harbour32
e descompactar o zip do mingw

Código: Selecionar todos

    - name: Unzip
      env:
         PATH: c:\program files\7-zip
      run: |
         c:
         md c:\temp\harbour
         md c:\temp\harbour\comp
         7z x -y c:\temp\mingw_0703.7z -oc:\temp\comp
Se temos os fontes do harbour, e mais o mingw, só resta gerar o harbour 3.2
É setar PATH, variáveis, e executar a criação

Código: Selecionar todos

    - name: Build 32 bits
      env:
         HB_BUILD_STRIP: all
         HB_COMPILER: mingw
         HB_INSTALL_PREFIX: c:\temp\harbour
         PATH: c:\temp\comp\mingw32\bin;c:\temp\harbour\bin
      run: |
         c:
         cd c:\temp\harbour32
         mingw32-make clean install
Harbour 3.2 gerado, resta salvar.

criar o zip

Código: Selecionar todos

    - name: Zip
      env:
         PATH: c:\program files\7-zip
      run: |
         c:
         7z a -r c:\temp\hb32_mingw_0703.7z c:\temp\harbour\*.* -xr'!.git' -xr'!.github' -xr'!.hbmk'
salvar como anexo, igual foi feito com mingw

Código: Selecionar todos

    - name: Save
      uses: actions/upload-artifact@v4
      with:
         name: hb32_mingw_0703
         path: c:\temp\hb32_mingw_0703.7z
Mesma coisa: zip tem validade 90 dias, então executa automaticamente todo mês.

Até aqui temos: mingw e harbour 3.2 prontos pra uso.
Não estão no projeto, estão anexados a execução do workflow, como se fosse 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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

O terceiro e último workflow, pra criar tudo.

Tudo que já foi visto, mesma coisa.
baixa os ZIPs anteriores, descompacta.
Instala todo resto, configura e executa.
salva no final.
Só criei variáveis pra facilitar.

Baixa tudo usando git

Código: Selecionar todos

    - name: Load Source Code
      env:
         REPO_SEFAZ:    https://github.com/JoseQuintas/sefazclass
         REPO_BOLETO:   https://github.com/JoseQuintas/boletoclass
         REPO_RMCHART:  https://github.com/JoseQuintas/rmchartclass
         REPO_WVGTEST:  https://github.com/JoseQuintas/wvgtest
         REPO_PDFCLASS: http://github.com/JoseQuintas/pdfclass
         REPO_HWGUI:    https://github.com/JoseQuintas/hwgui
         REPO_HMGE:     https://github.com/JoseQuintas/hmge
         REPO_HMG3:     https://github.com/JoseQuintas/hmg3
         REPO_OOHG:     https://github.com/JoseQuintas/oohg
         REPO_OOHGSAMP: https://github.com/JoseQuintas/oohg/samples
         REPO_DLGAUTO:  https://github.com/JoseQuintas/dlgauto
         PATH_SEFAZ:    c:\temp\harbour\addons\sefazclass
         PATH_BOLETO:   c:\temp\harbour\addons\boletoclass
         PATH_RMCHART:  c:\temp\harbour\addons\rmchartclass
         PATH_PDFCLASS: c:\temp\harbour\addons\pdfclass
         PATH_WVGTEST:  c:\temp\harbour\addons\wvgtest
         PATH_HWGUI:    c:\temp\harbour\addons\hwgui
         PATH_HMGE:     c:\temp\harbour\addons\hmge
         PATH_HMG3:     c:\temp\harbour\addons\hmg3
         PATH_OOHG:     c:\temp\harbour\addons\oohg
         PATH_ZEPACK:   c:\temp\harbour\addons\zepack
         PATH_DLGAUTO:  c:\temp\harbour\addons\dlgauto
      run: |
         c:
         git clone $env:REPO_SEFAZ       $env:PATH_SEFAZ        --depth 1
         git clone $env:REPO_BOLETO      $env:PATH_BOLETO       --depth 1
         git clone $env:REPO_RMCHART     $env:PATH_RMCHART      --depth 1
         git clone $env:REPO_WVGTEST     $env:PATH_WVGTEST      --depth 1
         git clone $env:REPO_PDFCLASS    $env:PATH_PDFCLASS     --depth 1
         git clone $env:REPO_HWGUI       $env:PATH_HWGUI        --depth 1
         git clone $env:REPO_HMGE        $env:PATH_HMGE         --depth 1
         git clone $env:REPO_HMG3        $env:PATH_HMG3         --depth 1
         git clone $env:REPO_OOHG        $env:PATH_OOHG         --depth 1
         git clone $env:REPO_OOHGSAMP    $env:PATH_OOHG\SAMPLES --depth 1
         git clone $env:REPO_DLGAUTO     $env:PATH_DLGAUTO      --depth 1
Cria tudo

Código: Selecionar todos

    - name: Build All
      env:
         HB_BUILD_STRIP: all
         HB_COMPILER: mingw
         HB_INSTALL_PREFIX: c:\temp\harbour
         HBMK_CMD: -workdir=c:\temp -q -quiet
         PATH: c:\temp\mingw\mingw32\bin;c:\temp\harbour\bin
      run: |
         c:
         #copy c:\temp\harbour\sefazclass\gtwvg.hbc c:\temp\harbour\contrib\gtwvg

         cd c:\temp\harbour\addons\sefazclass
         hbmk2 sefazclass.hbp -q -rebuild

         cd c:\temp\harbour\addons\boletoclass
         hbmk2 boletoclass.hbp -q -rebuild

         cd c:\temp\harbour\addons\rmchartclass
         hbmk2 rmchartclass.hbp -q -rebuild

         cd c:\temp\harbour\addons\pdfclass
         hbmk2 pdfclass.hbp -q -rebuild

         cd c:\temp\harbour\addons\wvgtest
         hbmk2 wvgtest.hbp -q -rebuild

         cd c:\temp\harbour\addons\wvgtest\bostaurus
         hbmk2 bostaurus.hbp -q -rebuild

         cd c:\temp\harbour\addons\hwgui
         hbmk2 hbxml.hbp    -q -rebuild
         hbmk2 hwgui.hbp    -q -rebuild
         hbmk2 hwgdebug.hbp -q -rebuild
         hbmk2 procmisc.hbp -q -rebuild

         cd c:\temp\harbour\addons\hmge
         hbmk2 hmge.hbp -q -rebuild

         cd c:\temp\harbour\addons\hmg3
         hbmk2 hmg3.hbp -q -rebuild

         cd c:\temp\harbour\addons\oohg
         hbmk2 oohg.hbp -q -w0 -rebuild

         cd c:\temp\harbour\addons\dlgauto\source
         hbmk2 test hwgui.hbc -q -rebuild
         hbmk2 test hmg3.hbc  -q -rebuild
         hbmk2 test hmge.hbc  -q -rebuild
         hbmk2 test oohg.hbc  -q -rebuild
#         hbmk2 test gtwvg.hbc -q -rebuild
E depois salva, igual já fez com os outros.

Usar máquina do github é isso, só esses arquivos de configuração.

Está aí, mas usando meus forks/projetos.
e no final, ainda compilo dlgauto com todas as LIBs, pra testar se tudo funciona.

Quem quiser, é só copiar os workflows de sefazclass e vai ter toda geração em seu próprio projeto.
A partir daí, cada um pode mexer, e criar suas próprias ferramentas, do jeito que quiser.

Pode enviar xharbour pra lá, blinker 5.5, blinker 5.8, blinker 7.7, qualquer coisa.
Fica escondido em workflow, acho que dá até pra deixar pirataria.
Mas aí é por conta e risco de cada um.

Os zips podem ser baixados por cadastrados no github, são públicos, mas não pra visitante.

Quem quiser diferente, é só fazer diferente.
Pode usar pra Xharbour, blinker, o que quiser.

Fiz uma vez pra outras coisas, mas não faço mais, quem quiser que faça.
Só mantenho aí pra não esquecer como se faz, mas nem uso isso.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

workflow.png
Lá no projeto aparece aí, em ACTIONS.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

sefaz.png
E os YMLs salvos em .github/workflows

É só isso. Salva nessa pasta e nada mais.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

Tem também rotina pronta pra gerar distribuição automática, e outras coisas mais.
Assim o zip ficaria público, e como resultado do projeto.
Quem quiser que pesquise isso.
É tudo público.

Tem muita coisa lá, só sei fazer isso que mostrei.
Para o que eu queria é suficiente.

Acaba fazendo teste de tudo que tenho aqui.
Qualquer erro de compilação vém aviso pra mim.
De vez em quando isso acontece.
Alguma lib que esqueci de compilar aqui, por exemplo.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

Pra usuário preguiçoso, que recebe tudo pronto, e nem assim quer pesquisar o que falta

A máquina do github vém com MSYS2 e chocolatey (acho que é esse o nome) totalmente atualizados.
Seja linux ou windows ou outro, já vém com muitas ferramentas prontas pra uso.

blinker não é livre, não tem.
Se quiser, é enviar o seu pra ficar num workflow.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

maquina.png
Parece que no sefazclass poderia usar uma máquina com 64 cores, 256GB Ram, e 2 TB de SSD.
Sei lá pra que tanto....
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

O post reflete também meu cansaço.
Tudo disponível de graça, e parece que ninguém usa.

Apenas pra pensar:
Tudo automático e de graça no github...
Tem LIB que cobra pra fazer isso.
Mas ninguém se manifesta.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

mingw.png
Dividi em 4.
O workflow usado em cada commit deixei só com zip de addons.
Criei um novo workflow que pega todos os ZIPs e junta, até com mingw, mas só execução mensal, e está na imagem.

É coisa inútil, pra ninguém usar.
Tem que baixar o zip, extrair pra c:\harbour
Depois setar o path

Código: Selecionar todos

SET PATH=c:\harbour\bin;c:\harbour\comp\mingw32\bin
Ou se salvar numa pasta c:\teste

Código: Selecionar todos

SET PATH=c:\teste\bin;c:\teste\comp\mingw32\bin
E tá pronto pra usar HMG3, HMG Extended, OOHG, HWGUI, ou só harbour + gtwvt + gtwvg + ado, no default normal do harbour.
Também poderia incluir fivewin, mas é comercial, não pode.

Pensando aqui se atualizo pra mingw última versão.
É só pegar do servidor, mas vai ficar grande.

Aonde fica mesmo o mingw no MSYS2 ? em mingw32 e mingw64 ? fazer um teste.
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

Quem quiser usar as máquinas do github

Mensagem por JoséQuintas »

multi.png
Uia
Testando agora.
Gerando ao mesmo tempo harbour com 3 mingw diferentes.

Acho que são 3 máquinas virtuais ao mesmo tempo.
Só vou ter certeza se funcionar.
O barato é doido.

Nota: é muito workflow, eram 12, tentando reduzir pra 4.
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