木の後ろの森が見えないようです。 NPMパッケージをビルドして公開する単純なCIパイプラインが必要です。私はappveyorを使用していますが、私の問題はそれに固有のものではないと思います。 CIスクリプトで次のような処理を実行したいだけです。
git clone "https://git_repo_url" .
npm run build
npm run test
npm version patch --git-tag-version
npm publish -tag beta
問題は:
npm version patch
ステップを実行しない場合、公開はfeed already contains the package 'abc' at version 'x.y.z'
エラーで失敗します。
その手順を実行した場合、新しいコミット(バージョンの変更)をgitリポジトリにプッシュする必要があります。そうしないと、次に私または他の誰かがビルドしたときに、上記のように失敗します。それでも、バックエンドパイプラインでgit Push
を実行するのは適切だとは思いません。
最後に、このCIスクリプトが公開せずにNPMパッケージをビルドするだけの場合、それに依存している他のプロジェクトでどのように使用しますか?
これを行う業界標準の方法は何ですか?
たとえば、別のプロジェクトでパッケージの非プロダクション機能バージョンをテストする必要がある場合、生成された一意のsemverでパッケージのpackage.json
にパッチを当てるようにCIスクリプトを作成する必要がありますか?互換性のあるバージョン(コミットせずに)にして、gitブランチ名と一致するnpm
タグを付けて公開しますか?それは良い考えですか?
私は、通常の開発サイクル中にCIを使用して内部/リリースごとのNPMパッケージを公開するためのDevOpsのベストプラクティスについて学ぶことに非常に興味があります。
通常、プロジェクトのメンテナは、プロジェクトに加えられた機能や変更に基づいて、バージョンをバンプします。
例えば:
patchバージョンには多くのアプローチがあります。ここに2つあります: