devpt-org / site

devPT Site
4 stars 7 forks source link

Implementar suporte para Gitpod #6

Closed IvoPereira closed 1 year ago

IvoPereira commented 1 year ago

Adicionar suporte para o Gitpod no projeto permitira uma rápida inicialização do ambiente de desenvolvimento.

Podemos basear a implementação numa já existente, por exemplo na que fizemos para o bot de Discord.

HackerinoS2 commented 1 year ago

Boas. Vou experimentar implementar suporte com o Gitpod.

HackerinoS2 commented 1 year ago

Preciso de ajuda.

Acho que estou bastante perto de chegar ao que é necessário para termos o Gitpod a funcionar corretamente mas tenho um problema que ainda não consegui dar a volta.

Neste momento tenho o seguinte:

tasks:
  - name: Setup .env
    init: cp .env.example .env

  - name: Get Laravel Sail dependencies via docker
    init: |
      docker run --rm \-u "$(id -u):$(id -g)" \-v "$(pwd):/app" -w /app \composer:2 \composer install --ignore-platform-reqs
      gp sync-done composer

  - name: Execute Laravel Sail
    init: gp sync-await composer
    command: ./vendor/bin/sail up

#Como o "sail up" executado em cima não "para", nunca vou conseguir emitir um evento "gp sync-done"
  - name: Run dev
   #Este bash falha pois ele não espera pelo "sail up"
    before: ./vendor/bin/sail bash
    init: php artisan key:generate && php artisan storage:link
    command: composer install && npm install && npm run dev

O meu problema é abrir o sail bash na altura correta para finalizar os restantes comandos.

@IvoPereira Consegues dar-me uma ajudinha?

raulcorreia7 commented 1 year ago

Acho que o teu problema é questão de lançares um processo em background. https://linuxhint.com/send-process-background-linux/

Experimenta lançar o commando como ./vendor/bin/sail up & e continuar.

  - name: Execute Laravel Sail
    init: gp sync-await composer
    command: ./vendor/bin/sail up & 

Senão funcionar, aconselho a juntares isto num único comando em Run dev.

Exemplo:

 - name: Run dev
   #Este bash falha pois ele não espera pelo "sail up"
    before: ./vendor/bin/sail bash
    init: php artisan key:generate && php artisan storage:link
    command: (./vendor/bin/sail up &) && composer install && npm install && npm run dev
rguedes commented 1 year ago

Se é para lançar em o Sail em background, adiciona o -d ao comando.

HackerinoS2 commented 1 year ago

Obrigado @raulcorreia7 e @rguedes , graças a vocês já ultrapassei este problema.

Ficou resolvido da seguinte forma:

- name: Execute Laravel Sail
  init: gp sync-await composer
  command: ./vendor/bin/sail up -d && gp sync-done sail-up

Efetivamente o que era necessário para passar daqui era colocar o processo em background (com o "-d").

Agora tenho um outro problema. Quando o Gitpod abre o bash do Sail, ele não executa os restantes comandos:

- name: Run dev
  before: |
     gp sync-await sail-up
     ./vendor/bin/sail bash
  init: php artisan key:generate && php artisan storage:link
  command: composer install && npm install && npm run dev

Ele consegue executar tudo que está no "before", porém não executa o "init" e/ou o "command".

Já estou a tentar resolver por mim mesmo, depois dou novidades.

rguedes commented 1 year ago
init: ./vendor/bin/sail artisan key:generate && ./vendor/bin/sail artisan storage:link
command: ./vendor/bin/sail composer install && ./vendor/bin/sail npm install && ./vendor/bin/sail npm run dev
HackerinoS2 commented 1 year ago
init: ./vendor/bin/sail artisan key:generate && ./vendor/bin/sail artisan storage:link
command: ./vendor/bin/sail composer install && ./vendor/bin/sail npm install && ./vendor/bin/sail npm run dev

Boas @rguedes . Já tinha chegado a essa conclusão e consegui colocar esta parte a funcionar, obrigado por partilhares.

Agora estou com problemas com o VITE (mixed content): image

Estou neste momento a tentar entender como posso mudar o link por onde ele tenta carregar os assets do vite.

rguedes commented 1 year ago

Chegaste ao mesmo ponto que eu quando tentei implementar no gitpod :D Só consegui por o projecto a funcionar através do npm run prod.

HackerinoS2 commented 1 year ago

Chegaste ao mesmo ponto que eu quando tentei implementar no gitpod :D Só consegui por o projecto a funcionar através do npm run prod.

Okappa. Eu vou continuar a tentar encontrar uma maneira de colocar isto a funcionar no meu lado e dou novidades assim que possível.

HackerinoS2 commented 1 year ago

Chegaste ao mesmo ponto que eu quando tentei implementar no gitpod :D Só consegui por o projecto a funcionar através do npm run prod.

@rguedes Eu não tenho o comando "npm run prod" mas tenho o "npm run build", ao qual tenho o mesmo problema de mixed content também.

Vou voltar a pegar nisto noutra altura.

rguedes commented 1 year ago

@HackerinoS2 Sim, enganei-me. Era run build

IvoPereira commented 1 year ago

Conseguem enviar isto para um PR para eu dar uma vista de olhos? Para ver o que consigo tentar desbloquear?

ijpatricio commented 1 year ago

O Vite ( ou o Node por baixo) pede q tenhamos q definir o host e porta q está a servir, independentemente de ser Gitpod.

Já vem pré configurado no Laravel, para ser no localhost... Assim, penso q isto ajuda a ir à solução.

Um para se poder mexer, ajudava claro! 😄

https://mattjennings.io/blog/how-to-enable-hmr-for-sveltekit-on-gitpod

https://github.com/gitpod-io/devx-community/blob/main/vite.config.ts

https://vitejs.dev/config/server-options.html#server-host

HackerinoS2 commented 1 year ago

@IvoPereira O @rguedes fez um pull request primeiro do que eu, mas deixo o meu na mesma para veres: https://github.com/devpt-org/site/pull/11

Eu agora não tenho muito tempo para ver esta situação, apenas para o fim de semana.

rguedes commented 1 year ago

@HackerinoS2 Parece-me que o teu pull request é uma melhor opção porque usa o docker com mysql, etc.

A minha solução é mais simples e frontend oriented, se for veres até uso sqlite como database.

IvoPereira commented 1 year ago

Closed by #12.