SqlRdd

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

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

SqlRdd

Mensagem por JoséQuintas »

basicamente, se tá no github é só criar arquivo YML dentro da pasta .github\workflows
A partir daí aparece em actions.

aqui na minha máquina, conteúdo texto
local.png
visível no github na mesma localização, é público
local2.png
em actions, se não for automático, aciona manual.
local3.png
Nenhuma configuracão extra, é só criar os arquivos YML e tudo acontece.

Nestes dias postaram no harbour-users, talvez sirva de modelo pra msvc

https://github.com/FiveTechSoft/Harbour ... svc_32.yml

E no meu mais exemplos
https://github.com/JoseQuintas/sefazcla ... /workflows

No meu tem geração de harbour, hmg 3, hmg extended, oohg, hwgui, sefazclass, rmchartclass, compilação dlgauto usando hwgui, hmg3, hmg extended, oohg e gtwvg, compilação de harbour e hwgui em linux, e sei lá mais o que...
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

SqlRdd

Mensagem por JoséQuintas »

Não tem muito segredo não.

que máquina vai usar

Código: Selecionar todos

jobs:

  Build:
    runs-on: windows-latest
    steps:
ferramentas baixadas de outros yml, ou de onde precisar, SE PRECISAR - vém várias pré-instaladas

Código: Selecionar todos

    - name: mingw 7.3
      uses: dawidd6/action-download-artifact@v2
      with:
         workflow: mingw_0703.yml
         workflow_conclusion: success
         name: mingw_0703
         path: c:\temp
         repo: JoseQuintas/sefazclass

    - name: harbour 3.2
      uses: dawidd6/action-download-artifact@v2
      with:
         workflow: hb32_0703.yml
         workflow_conclusion: success
         name: hb32_0703
         path: c:\temp
         repo: JoseQuintas/sefazclass
unzip das ferramentas

Código: Selecionar todos

    - name: Unzip
      env:
         PATH: c:\program files\7-zip
      run: |
         c:
         7z x -y c:\temp\hb32_0703.7z -oc:\temp\harbour
         7z x -y c:\temp\mingw_0703.7z -oc:\temp\mingw
baixar projetos (aqui crio variáveis de ambiente, só por criar mesmo)

Código: Selecionar todos

    - name: Load Source Code
      env:
         REPO_SEFAZ:   https://github.com/JoseQuintas/sefazclass
         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_DLGAUTO: https://github.com/JoseQuintas/dlgauto
         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_SEFAZ:   c:\temp\harbour\addons\sefazclass
         PATH_DLGAUTO: c:\temp\harbour\addons\dlgauto
      run: |
         c:
         git clone $env:REPO_SEFAZ   $env:PATH_SEFAZ   --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_DLGAUTO $env:PATH_DLGAUTO --depth 1
E a compilação geral, também criando variáveis de ambiente

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\sefazclass
         hbmk2 sefazclass.hbp -workdir=c:\temp -q -rebuild

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

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

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

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

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

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

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

         cd c:\temp\harbour\addons\oohg
         hbmk2 oohg.hbp -workdir=c:\temp -q -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
aí zipa tudo

Código: Selecionar todos

    - name: Zip
      env:
         PATH: c:\program files\7-zip
      run: |
         c:
         7z a -r c:\temp\hb32pack.7z c:\temp\harbour\*.* -xr'!.git' -xr'!.github' -xr'!.hbmk'
e no fim salva o zip anexo à execução

Código: Selecionar todos

    - name: Save
      uses: actions/upload-artifact@v3
      with:
         name: harbour
         path: c:\temp\hb32pack.7z
e no início define se quer rodar automático a cada atualização (push), em horário determinado (schedule), ou manualmente (workflow_dispatch)
podem ser todos.

Código: Selecionar todos

on:
  push:
  schedule:
   - cron: "45 5 2 * *"
  workflow_dispatch:
    inputs:
      name:
        description: 'hb32pack'
        default: 'hb32pack'
        required: true
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

SqlRdd

Mensagem por JoséQuintas »

voltando à página de actions:
action1.png
action2.png
action3.png
action4.png
Fica rodando lá no github, pode ver o resultado depois, mas, se quiser, pode ficar acompanhando tudo on-line
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

SqlRdd

Mensagem por JoséQuintas »

Aqui deu erro na HMG3, mas fica separada do principal
erro.png
fiz a alteração e salvei
erro2.png
como é separado, não compilou automático, porque o principal não teve alteração
Então, acionei manual.
erro3.png
Mostra que está em execução.
Posso acompanhar, ou olhar depois.
erro4.png
Nota:
o github não detectou que deu erro desta vez.
talvez porque é subprojeto.

Podemos usar essas máquinas à vontade ?
Faço isso há anos.
Não uso os ZIPs pra nada, mas continuam sendo gerados e salvos até hoje.
O github NÃO APAGA NUNCA as execuções, mas apaga os anexos após 90 dias.
E se deixar sem atualizar por 90 dias, ele suspende as execuções automáticas, coloquei pra rodar automático todo mês, só esta mensal é suspensa.
Voltou a atualizar, o automático mensal também volta.

O mensal é só pra ficar renovando a validade dos zips, e não quero transferir o mingw de novo, ou deixar num projeto.
Isso é um truque que descobri, que deixa salvar arquivos no projeto, mas sem fazer parte do projeto.
O projeto fica só com os fontes, mas tem o mingw lá, meio escondidinho kkk
Dá pra salvar BCC e outras coisas desse jeito também, ou direto num projeto.
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/
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

SqlRdd

Mensagem por marco.prodata »

Caraca, bastante material agora, rsrsrsrs, vlw mesmo, bastante coisa pra estudar agora.
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

SqlRdd

Mensagem por bencz »

Tudo começa por essa pastinha aqui:

https://github.com/xHarbour-org/xharbou ... %20Machine

é importante instalar o aceapi.exe e o Win32OpenSSL-1_0_2j.exe, que estão nessa pasta
O aceapi, deve ser insaldo, em maquinas x64, no Arquivos De Programa(x86), e o WinOpenSSL deve ser instaldo no C:\
O GnuWin32.zip, deve ser extraido no C:\
o PellesC tambem deve ser instalado


Após instalar isso, vá até essa pasta aqui:
https://github.com/xHarbour-org/xharbou ... uilder/bat
e execute o setxhb.bat, note que dentro desse bath, tem pastas que são setadas no path, como "\xHarbour", "OpenSSL" e etc...então, certifique-se que os diretorios estão corretos
Após setar as pastas, vamos compilar o negocio todo

Um ponto importante para se atentar, é que dentro do setxhb é setado um parametro de linkedição do VC, que é:

Código: Selecionar todos

SET LFLAGS=-DEBUG -DEBUGTYPE:CV
é interessante comentar essa linha tambem

Após isso, volte para a raiz do \xharbour e digite:

Código: Selecionar todos

make_vc.bat all
Após compilar tudo, copie o diretorio "xHarbourBuilder" para o C:\ e renomeie o diretorio para "xharbour.com" e então va novamente para os seguinte diretorio:
https://github.com/xHarbour-org/xharbou ... uilder/bat

e digite:

Código: Selecionar todos

xbldfull.bat -all
Enfim, é parece simples, mas, tem um monte de lugar que utiliza um path diferente, e etc... tem q ir tentando e corrigindo até compilar tudo...
Olhando para esse fluxo, colocar para compilar no CI/CD do git, vai ser um tantinho trabalhoso, mas, nao impossivel
Imagem
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SqlRdd

Mensagem por JoséQuintas »

Achei interessante ver este arquivo

https://github.com/xHarbour-org/xharbou ... ake_bc.bat

Lembra muito o bat que criei pra OOHG.

https://github.com/JoseQuintas/oohg/blo ... ompile.bat

Parece até que a mesma pessoa fez os dois.
Não me perguntem qual foi criado primeiro, não faço idéia, e nem me importo em saber, apenas achei interessante.
Minha intenção era acabar com os vários bats da oohg, mas só apareceram mais depois, todos chamando esse kkkk
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/
marco.prodata
Usuário Nível 3
Usuário Nível 3
Mensagens: 238
Registrado em: 30 Nov 2018 10:07
Localização: Caratinga

SqlRdd

Mensagem por marco.prodata »

JoséQuintas escreveu:basicamente, se tá no github é só criar arquivo YML dentro da pasta .github\workflows
A partir daí aparece em actions.

aqui na minha máquina, conteúdo texto
local.png
visível no github na mesma localização, é público
local2.png
em actions, se não for automático, aciona manual.
local3.png
Nenhuma configuracão extra, é só criar os arquivos YML e tudo acontece.

Nestes dias postaram no harbour-users, talvez sirva de modelo pra msvc

https://github.com/FiveTechSoft/Harbour ... svc_32.yml

E no meu mais exemplos
https://github.com/JoseQuintas/sefazcla ... /workflows

No meu tem geração de harbour, hmg 3, hmg extended, oohg, hwgui, sefazclass, rmchartclass, compilação dlgauto usando hwgui, hmg3, hmg extended, oohg e gtwvg, compilação de harbour e hwgui em linux, e sei lá mais o que...
Caro Jose, grato pelas dicas, comecei a criar, realmente é um recurso impressionante, vou utilizar nos projetos da empresa, pena que meu tempo tá um pouco escasso, pq estou correndo pra terminar umas pendências pra sair de férias, mas vou tocando aos poucos, depois dá uma olhada pra ver como tá ficando e se estou no caminho certo.

https://github.com/marcoprodata/xharbour/actions

Vou corrigir os erros do bcc, adicionar o mingw e o linux, e depois faço um pull request pro pessoal do xharbour, e depois vou tentar adicionar dentro do próprio make_?? pra compilar o conteudo da pasta xHarbourBuilder, ai devo precisar da sua ajuda, rsrsrsrs

De qualquer forma, valeu pelos esclarecimentos.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

SqlRdd

Mensagem por JoséQuintas »

Só comentário:

Alterei aquele workflow de compilar geral, removi -workdir=c:\temp

Na minha máquina funciona, porque uso meu build.exe antes de compilar. No github estava dando problema.
Coisa simples: meu build apaga lixo de um projeto antes de fazer o novo
O default do hbmk2 é criar pastas separadas, com lixo separado, então o default funciona no github.

Apenas não gosto das pastas .hbmk contendo temporários
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