Validando nosso CI

Com tudo pronto, vamos criar nossa primeira release?

Primeira saudação

Antes de tudo, vamos criar uma branch nova pra essa nossa feature?

git branch -b feat/add-hello

Precisamos adicionar um código para nossa biblioteca.

  • index.js:

    const { hello } = require("./src/hello");
    
    console.log(hello());
    
    module.exports = { hello };
    
  • src/hello.js:

    const hello = () => {
        return "Olá mundo!";
    };
    
    module.exports = { hello };
    

Vamos subir nossa modificação e criar nosso primeiro PR.

$ git add index.js src/hello.js
$ git commit -m 'feat: add greeting function'
$ git push --set-upstream origin feat/add-hello

Os testes falharam. Essas falhas de pipeline incomodam, né? Pois bem, vamos corrigir isso tudo!

Testes

Agora com o teste, vamos atualizar o script de testes no package.json:

{
  ...
  "scripts": {
    "test": "jest"
  }
  ...
}

Subindo a alteração!!

$ git add package.json
$ git commit -m 'chore: use `jest` to run tests'
$ git push

Ainda está quebrado. Mas temos progresso! O erro que está dando agora é simples de resolver! Vamos adicionar um teste em src/hello.test.js para deixar o jest feliz!

const { hello } = require("./hello");

test("Retorna 'Olá mundo!'", () => {
    expect(hello()).toBe("Olá mundo!");
});
$ git add src/hello.test.js
$ git commit -m 'test: add `hello.test.js`'
$ git push

Publicando

Bem, agora que nosso PR está testado e aprovado, vamos mergear!

Para mergear, vamos utilizar o método do squash and merge, recomendado pelo googleapis/release-please.

Pronto! Agora que nosso workflow rodou, foi criado um novo PR de release. É só mergearmos e correr pro abraço!

Se tudo der certo, você acaba de publicar um novo pacote no NPM! Parabéns!!