Automatické vydání nové verze JavaScript SDK: krok za krokem
Délka:
8 min
Publikováno:
27. července 2023

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:
- Nastavíte GitHub Action, který vydá novou verzi SDK.
- 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:
- 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:
- V kořeni projektu vytvořte adresář
.github/workflows/. Konfigurační soubory GitHub Actions vždy patří sem. - V tomto adresáři vytvořte nový konfigurační YAML soubor. Pojmenujte ho
release-please.yml. - 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.
-
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“.
-
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:nebofeat:), 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
- Než SDK poprvé publikujete, založte si účet na npm na npmjs.com.
- Přejděte do Account > Access Tokens a vygenerujte nový Classic Token typu Automation. Tady je víc informací o npm tokenech.
- Token zkopírujte.
- 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“.
- Do pole Name napište
NPM_TOKEN. - 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:
- 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říkladnpm-publish.yml. - 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.
- 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?
- Automatické vydání pro Ruby
- Automatické vydání pro PHP
- Prozkoumejte náš nástroj, který automatizuje všechny technologie naráz
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.