DX Heroes logo
#guide
#sdk
#tool

Automatické vydání nové verze JavaScript SDK: krok za krokem

Délka: 

8 min

Publikováno: 

27. července 2023

Automatické vydání nové verze JavaScript SDK: krok za krokem

Udržovat pořádný changelog, vydat novou verzi SDK a pak ji nahrát do repozitáře balíčků: to jsou opakované úkoly, které ukrajují vývojářům čas. Všechny se dají zautomatizovat.

Tenhle návod ukáže, jak na to. Projdete si tyto kroky:

  1. Nastavíte GitHub Action, který vydá novou verzi SDK.
  2. Publikujete novou verzi SDK:
    • Založíte si účet na npm.
    • Bezpečně uložíte npm API token do GitHubu.
    • Nastavíte GitHub Action, který nové verze SDK publikuje automaticky.

Předpoklady

Tenhle návod počítá s tím, že už máte funkční SDK a nahráli jste ho do GitHub repozitáře.

Vydání nové verze

Owner + Developer: Nastavte GitHub Action na vydávání nových verzí SDK

Abyste se vyhnuli únavné práci s ruční aktualizací changelogu a vydáváním verzí, doporučujeme GitHub Action release-please. Sleduje každou změnu kódu od posledního vydání a podle vašich commit zpráv drží otevřený pull request s changelogem a změnou verze. Až budete připraveni vydat novou verzi, stačí ten pull request zmergovat.

Nastavíte ho takhle.

Owner:

  1. V GitHub repozitáři přejděte do Settings > Actions > General a ujistěte se, že je zaškrtnutá volba „Allow GitHub Actions to create and approve pull requests“.

Developer:

  1. V kořeni projektu vytvořte adresář .github/workflows/. Konfigurační soubory GitHub Actions vždy patří sem.
  2. V tomto adresáři vytvořte nový konfigurační YAML soubor. Pojmenujte ho release-please.yml.
  3. Do souboru zkopírujte tento kód:
# This workflow opens and updates a pull request with a new package version
# based on code changes.

# The pull request updates the version in package.json, updates the changelog
# and creates release tags.

# https://github.com/marketplace/actions/release-please-action

on:
  push:
    branches:
      - master

permissions:
  contents: write
  pull-requests: write

name: release-please

jobs:
  release-please:
    runs-on: ubuntu-22.04
    steps:
      - uses: google-github-actions/release-please-action@v3.7.10
        with:
          release-type: node
          package-name: release-please-action
          pull-request-title-pattern: "chore(release): ${version}"
          pull-request-header: ":robot: Merge this PR to release a new version"

Pokud se hlavní větev vašeho projektu nejmenuje master, ale jinak (například main), změňte to na řádku 13.

  1. Pokud jste SDK už někdy vydávali, ujistěte se, že commit posledního vydání má připojený tag verze (ve formátu „v2.1.1“) a že je tento tag nahraný na GitHubu. release-please z tohoto tagu odvodí další číslo verze. Pokud takový tag neexistuje, release-please navrhne jako další verzi „v1.0.0“.

  2. Všechny tyto změny zacommitujte a nahrajte do GitHub repozitáře. Workflow je teď nastavené. Až příště někdo přidá něco k vydání s konvenční commit zprávou (s prefixem fix: nebo feat:), release-please otevře pull request. Jak budete přidávat další kód, bude se ten pull request automaticky aktualizovat. Až budete připraveni vypustit novou verzi SDK, prostě ho zmergujete.

release-please se řídí specifikací Semantic Versioning (SemVer), takže čísla verzí generuje podle toho, jak významné vaše změny jsou. Breaking changes zvednou hlavní (major) verzi, nové funkce zvednou vedlejší (minor) verzi a opravy chyb zvednou patch verzi. Díky tomu vaši uživatelé snadno poznají, co pro ně každá nová verze SDK znamená.

Vaše commit zprávy musí dodržovat formát Conventional Commits, aby release-please poznal význam vašich změn a zvolil správné číslo verze. Znamená to konkrétní formát: „feat: add new feature“ pro novou funkci, „fix: resolve bug“ pro opravu a „chore: update dependencies“ pro změnu mimo kód. Když ho používáte konzistentně, release-please generuje správná čísla verzí i changelogy. Changelog můžete pořád upravit ručně v otevřeném pull requestu, než vydáte.

Publikace SDK

Owner: Založte účet na npm, získejte API token a bezpečně ho uložte do GitHubu

  1. Než SDK poprvé publikujete, založte si účet na npm na npmjs.com.
  2. Přejděte do Account > Access Tokens a vygenerujte nový Classic Token typu Automation. Tady je víc informací o npm tokenech.
  3. Token zkopírujte.
  4. Otevřete GitHub stránku vašeho projektu. Přejděte do Settings > Security > Secrets and Variables > Actions a klikněte na „New repository secret“.
  5. Do pole Name napište NPM_TOKEN.
  6. Do pole Secret vložte token z kroku 3. Potvrďte kliknutím na „Add secret“.

Váš npm token je teď bezpečně uložený v repozitáři a váš GitHub Action si ho umí přečíst. Když Action poběží, použije token k přihlášení k npm registru a SDK publikuje.

Svůj npm token nikdy s nikým nesdílejte a nikdy ho nedávejte do kódové základny. Secrets zajistí, že je token přístupný jen oprávněným uživatelům a nezůstane ve vašem kódu.

Developer: Zautomatizujte publikaci SDK pomocí GitHub Actions

Můžete nastavit GitHub Action, který vaše SDK publikuje do npm repozitáře automaticky poté, co nahrajete release commit do origin repozitáře na GitHubu:

  1. Ve svém projektu otevřete složku .github/workflows (nebo ji vytvořte, pokud ještě neexistuje) a vytvořte nový konfigurační YAML soubor. Pojmenujte ho například npm-publish.yml.
  2. Do souboru zkopírujte tento kód:
# This workflow will publish a package to npmjs.com when a release is created

# https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages

name: Node.js Package

on:
  push:
    branches:
      - master

jobs:
  publish-npm:
    if: contains(github.event.head_commit.message, 'chore(release)')
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3.5.3
      - uses: actions/setup-node@v3.7.0
        with:
          node-version: 18.16.1
          registry-url: https://registry.npmjs.org/
      - run: npm publish --access public
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Pokud se hlavní větev vašeho projektu nejmenuje master, ale jinak (například main), změňte ten název na řádku 10.

  1. Tenhle nový soubor zacommitujte do hlavní větve projektu a změny nahrajte do origin repozitáře na GitHubu.

GitHub Action je teď připravený. Aby fungoval, musíte do GitHub secrets nejdřív přidat NPM_TOKEN.

Action se spustí, když do hlavní větve projektu nahrajete commit s commit zprávou obsahující frázi chore(release). Pokud jste prošli kroky z oddílu „Vydání nové verze“ výše, publikační Action se spustí ve chvíli, kdy zmergujete pull request, který release-please otevřel.

Závěr

Tenhle návod vás provedl tím, jak nastavit automatické nástroje na vydání nové verze JavaScript SDK a její publikaci do npm repozitáře. Automatizace těchhle kroků uvolní čas a prostředky, které můžete vrátit zpět do psaní kódu.

Pokud potřebujete pomoct s vývojem SDK nebo nastavením automatizace, náš tým je připravený. Umíme zefektivnit váš proces vývoje SDK, doladit nastavení automatizace a ušetřit vám u toho čas i peníze.

Tak se nám ozvěte ještě dnes a pojďme se podívat, jak váš vývoj SDK posunout dál.


Potřebujete automatické vydání pro jinou technologii?


Mohlo by vás také zajímat:

Chcete být o krok napřed?

Nenechte si utéct naše nejlepší postřehy. Žádný spam, jen praktické analýzy, pozvánky na exkluzivní eventy a shrnutí podcastů přímo do vaší schránky.