Makefile Over Github Ações Controle Total
Problema nos tornamos escravos das plataformas. Ações do GitHub, oleodutos CI/CD, serviços em nuvem – todos prometem conveniência, mas oferecem dependência. Você pressiona o código, aguarda os fluxos de trabalho, espero que eles tenham sucesso. Você não está no controle; A plataforma é. O despertar hoje, eu excluí .github/workflows/. Tudo isso. Perdido. Por que? Porque eu percebi algo fundamental: as plataformas são apenas interfaces. A lógica deve ser nossa. The Makefile Renaissance o que tivemos (escravidão da plataforma) # .github/workflows/publish.yml Nome: Publicar pacotes em: push: ramificações: [main]
Empregos: Publicar: Runs-On: Ubuntu-Lates Etapas:-Usos: Ações/Checkout@V3-Usos: Ações/Setup-Node@V3-Executar: NPM Publicar Digite o modo de tela Full-Screen Sair FullScreen Modo Problemas: OBRIGADO NO AMBERNO NO TESTE LOCAL PARA O GITHUB DEMBUGING Requer empurrar código para correrções Limitadas para o ambiente do GithUb no ambiente sem testamento local, o que não é possível fazer o que não é possível fazer o que não é possível que o Código de Runners seja limitado para o ambiente. Package.json Packages/ -x Dirname {}); do \ pkg = $$ (jq -r ‘.name’ $$ dir/package.json); \ versão = $$ (jq -r ‘.version’ $$ dir/package.json); \ publicado = $$ (NPM View $$ PKG Versão 2>/dev/null || echo “0.0.0”); \ se [ “$$version” != “$$published” ]; então \ echo “publicação $$ PKG@$$ versão …”; \ (CD $$ dir && npm publish); \ fi \ feito Digite Modo de tela cheia Sair do modo de tela cheia Benefícios: funciona em qualquer lugar (local, IC, em qualquer lugar com maquiagem) Execução instantânea Transparência completa Nenhuma dependências externas Controle completo A filosofia que se conecta ao nosso princípio principal: INTERFACIONEPIDAÇÃO → Código de vida agora estendido: Plataforma zero → Controle total Antes: INTERFACE DO DEVENVOLVIMENTO → Desenvolvedor → Modo de tela cheia de saída Modo de tela cheia Cada seta é uma dependência. Cada dependência é um ponto de falha potencial. Depois: Primeiro de desenvolvimento da lógica Desenvolvedor → Makefile → Execução direta ↑ ↑ Controle lógico Digite Modo de tela cheia Modo de tela cheia sem intermediários. Sem esperar. Sem surpresas. Implementação real Aqui está o nosso Makefile real que substituiu todas as ações do GitHub: .Phony: Ajude a leitura de listar a lista de publicar-tudo para limpar o teste # Gere ReadMe dinamicamente a partir de pacotes readme: @echo ” # vibe coding”> readme.md @echo “” >> readme.md @echo “| comando | pacote | descrição | >> readme.md @echo “| ——— | ——— | ————- |” >> readme.md @for dir em $$ (package.json packages/ -x dirname {} | classy); do \ name = $$ (nome da base $$ dir); \ pkg = $$ (jq -r ‘.name’ $$ dir/package.json); \ desc = $$ (jq -r ‘.Description’ $$ dir/package.json); \ echo “| [\`$$name\`](Nome dos pacotes/$$) | \ `$$ pkg \` | $$ descendente | $$ antigo | → $$ new “; \ feito # teste todas as ferramentas Teste: @For Dir in $$ (FD Package.json Packages/ -x Dirname {}); do \ name = $$ (nome da base $$ dir); \ ECHO” Testing $$ Nome … “; \ (CD $$ dir && Bun Run ./index.ts -h); 48 anos (1976). Máquina local Qualquer Plataforma de CI/CD SSH Docker Recipts em qualquer lugar com make 3. Ações do github de velocidade: Push → Aguarde o corredor → Executar → Resultados (2-5 minutos) MakeFile: Execute → Resultados (Instant) 4. Interfaces → Controle Os serviços lógicos são conveniências → possuem as nuvens de capacidade são computadores → Seu computador é suficiente para fluxos de trabalho são apenas scripts → Escreva scripts Migration Guide 1: Identifique as dependências da plataforma do GitHUC → STETELTE DESTRATIONS Ferramentas para o primeiro local em nuvem pode ser substituído por: um script Um alvo makefile Um serviço local Um simples binário Exemplos de Real Readme Geração em vez de uma leitura estática que fica desatualizada: ReadMe: @For Packages em pacotes/*; [$$(basename $$package)](pacote $$) “>> readme.md; \ feito Digite o modo de tela cheia de saída de tela cheia Publicação automática em vez de ações do github: publicar: readme @git diff –exit-code || (git add-np && git Commit -m” Auto: atualização “&& git push) @Make public public ModaMene ModanemEn ModoMeen FullSeen” AUTOME @fswatch -O LAVAMENTO DESPERAÇÃO DO RESPONSÁRIO DA INFORMAÇÃO DA FORMA DE PRONTAGEM DO FORMO DE PRONTAGEM DO FORMO DE PRONTAGEM DA FORMO DESCONTENDO FECHENTE O FECTANTE FUNCIONALIZADO DO INSCORTE. código em vez de ler a documentação.
Fonte