Pular para o conteúdo
Página inicial da Latchkey
Comece grátis
Menu da documentação

Execute seu primeiro job em um runner do Latchkey

Troque um job do GitHub Actions para um runner gerenciado alterando uma linha de YAML, veja-o ser captado e verifique-o no dashboard.

Resumo

  1. Altere uma linha: runs-on: latchkey-small (a forma em array [self-hosted, latchkey-small] funciona de forma idêntica).
  2. Verifique pelo nome do runner na execução do GitHub e pela atividade da frota na página de Runners.
  3. Um job que permanece na fila indica um problema de roteamento ou cobrança, não um erro; veja Solução de problemas.

Antes de começar

A alteração de uma linha#

.github/workflows/ci.yml
jobs:
  test:
    runs-on: ubuntu-latest
    runs-on: latchkey-small

Você nunca precisa digitar um rótulo de memória: cada linha da tabela Your runners na página de Runners tem uma ação Copy CI snippet, e o painel de detalhes de cada runner inclui um cartão Use in CI com o rótulo e um snippet copiável.

Ambas as formas de rótulo roteiam de forma idêntica; use a que suas convenções preferirem:

.github/workflows/ci.yml
name: CI
on: [push]

jobs:
  test:
    runs-on: latchkey-small
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
      - run: npm ci
      - run: npm test
.github/workflows/ci.yml
name: CI
on: [push]

jobs:
  test:
    runs-on: [self-hosted, latchkey-small]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '22'
      - run: npm ci
      - run: npm test

Os tamanhos são escolhidos por job, não por workflow: dê ao job pesado mais máquina e mantenha todo o resto em latchkey-small. Subir um tamanho dobra a tarifa por minuto, então se paga quando pelo menos reduz pela metade a duração do job; veja a orientação de dimensionamento.

.github/workflows/build.yml
jobs:
  heavy-build:
    runs-on: latchkey-large   # 8 vCPU / 32 GB for the heavy job
  quick-lint:
    runs-on: latchkey-small   # keep cheap jobs on small

runs-on aceita expressões, então uma matrix pode rotear cada perna para o tamanho de que ela precisa: pernas leves ficam na tarifa do small enquanto só a perna pesada paga pela máquina maior.

.github/workflows/ci.yml
jobs:
  test:
    strategy:
      matrix:
        include:
          - suite: unit
            runner: latchkey-small
          - suite: integration
            runner: latchkey-large
    runs-on: ${{ matrix.runner }}
    steps:
      - uses: actions/checkout@v4
      - run: npm run test:${{ matrix.suite }}

Ou gere-o#

Monte sua linha runs-on

.github/workflows/ci.yml
jobs:
  build:
    runs-on: latchkey-small

Cole isto em qualquer workflow em .github/workflows/. Todo o resto do job continua igual.

Publique e verifique#

Faça commit e dispare o workflow

Faça o push da alteração ou dispare o workflow manualmente. No GitHub, o job aparece como enfileirado até que um runner o capte: cerca de dois segundos se um runner a quente já estiver online, mais tempo se um runner novo tiver que fazer cold start.

Verifique onde ele rodou

Na visão de execução do GitHub, o nome do runner do job confirma que uma máquina do Latchkey o assumiu em vez de uma hospedada pelo GitHub. Como todo runner é destruído após um job, não espere um nome familiar de execução para execução: uma máquina nova assume cada job, que é o design efêmero funcionando como pretendido.

Encontre os minutos

No dashboard do Latchkey, a página de Runners mostra a execução na atividade da sua frota, e seus minutos aparecem contra seu nível gratuito. Com o tempo, os mesmos números aparecem em mais dois lugares: a página Billing (progresso do nível gratuito, minutos cobráveis, custo estimado até agora) e a página Análise de custos, que rastreia o gasto com runners do Latchkey junto ao seu gasto com o GitHub. Detalhes em Uso de runners e minutos gratuitos.

Se o job simplesmente fica em "queued"#

Um job que nunca é captado é o sintoma padrão de todo problema de roteamento: o repositório não é monitorado, os runners gerenciados não estão habilitados, o rótulo tem um erro de digitação, a imagem de um runner personalizado ainda está sendo construída, ou os lançamentos de runner estão bloqueados por cobrança. Não há erro explícito na interface do GitHub nesses casos. Percorra Solução de problemas: job permanece na fila para identificar qual é.

Perguntas comuns#

Meus rótulos hospedados pelo GitHub continuam funcionando?

Sim. ubuntu-latest e afins continuam funcionando lado a lado; instalar o Latchkey não muda nada sobre eles. Você pode migrar um job de cada vez e deixar o resto intocado pelo tempo que quiser.

Posso misturar runners do Latchkey e hospedados pelo GitHub em um workflow?

Sim, livremente. runs-on é decidido por job, então um workflow pode rodar seus jobs Linux em rótulos latchkey-* enquanto jobs que precisam de GPU, Windows, macOS ou hosts arm64 permanecem nos hospedados pelo GitHub ou outros runners.

Preciso mudar algo além de runs-on?

Para a maioria dos workflows, não. A imagem do runner é projetada para igualar ou superar os runners hospedados pelo GitHub, e os passos actions/setup-* resolvem a partir do mesmo layout de toolcache, então o restante do job permanece como está.

Quanto essa primeira execução me custa?

Os minutos são cobrados por minuto, arredondados para cima por job, pela tarifa do tamanho, e todo plano inclui minutos gratuitos por mês. A menos que você já tenha esgotado seu nível gratuito, uma execução de teste curta não custa nada. Veja Uso de runners e minutos gratuitos.