Beschreibe den Fehler
Die npm-Version wird zwischen Master-Builds nie inkrementiert.
Wenn ich nach einer erfolgreichen Veröffentlichung in npm einen neuen PR zusammenführe, der die Version in package.json nicht manuell anhebt, versucht der Befehl shipit, die vorherige Version erneut zu veröffentlichen, was mit - fehlschlägt -
npm ERR! 403 403 Forbidden - PUT https://registry.yarnpkg.com/@kenshooui%2freact-tree - You cannot publish over the previously published versions: 0.0.16.
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.
Fortpflanzen
Habe ein npm-Paket, das unabhängig in einem Monorepo veröffentlicht wird.
package.json hat beispielsweise eine Version von 1.1, die bereits veröffentlicht wurde.
Ich gebe eine neue PR heraus und wenn ich sie zusammenfüge, versucht shipit, 1.1 erneut zu veröffentlichen.
(*) Wenn ein neues Tag unter Verwendung der von Ihnen bereitgestellten TravisCI-Dokumentation generiert wird, wird eine Canary-Version des Pakets veröffentlicht.
Erwartetes Verhalten
Ich würde erwarten, dass shipit 1.1.1 veröffentlicht und/oder die package.json-Version aktualisiert.
Umweltinformationen:
Environment Information:
"auto" version: v9.13.0
"git" version: v2.22.0
"node" version: v12.14.1
Project Information:
✔ Repository: kenshoo/react-tree (https://github.com/kenshoo/react-tree)
✔ Author Name: Lior
✔ Author Email: [email protected]
✔ Current Version: v0.0.15
✔ Latest Release: v0.0.16 (https://github.com/kenshoo/react-tree/releases/tag/v0.0.16)
✔ Labels configured on GitHub project
GitHub Token Information:
✔ Token: [Token starting with c5f0]
✔ Repo Permission: admin
✔ User: uikenshoo
✔ API: https://api.github.com (https://api.github.com)
✔ Enabled Scopes: repo, read:org, user:email, repo_deployment, repo:status, write:repo_hook, write:packages, read:packages
✔ Rate Limit: 4974/5000
Zusätzlicher Kontext
Das Projekt ist leer und öffentlich, sodass auto, travis.yml und der travis-Build alle sichtbar sind.
Ich bin mir sicher, dass ich etwas falsch mache, aber ich würde mich über jeden Hinweis freuen.
Bitte beachten Sie, dass das Projekt zwar ein Monorepo ist, ich jedoch auto für ein einzelnes Paket verwende.
Bitte beachten Sie, dass das Projekt zwar ein Monorepo ist, ich jedoch auto für ein einzelnes Paket verwende.
Ohne zu viel hineinzulesen, denke ich, dass dies das Problem ist. Wenn Sie lerna verwenden, wird versucht, mit lerna anstelle von npm zu veröffentlichen. Schaue mir das jetzt aber genauer an
Kannst du mich mit dem Build verlinken?
Ich verwende nicht Lerna, sondern Garnarbeitsräume und Vorkonstruieren.
Das ist der Aufbau -
https://travis-ci.org/kenshoo/react-tree/builds/654544555?utm_source=github_status&utm_medium=notification
Ich bekomme eine PR zusammen, die das richtig einrichten sollte. Derzeit ist mit dem npm
Plugin lerna
ein erforderliches Peer-Dep für die Veröffentlichung. Ich werde das auch für Sie einrichten.
In Zukunft wird dies bei #917 möglicherweise nicht mehr der Fall sein. Aber das könnte ein weiter Weg sein, denn ich möchte auto
für eine Weile stabil halten.
Danke, ich schätze Ihre überwältigende Hilfe!
Ich werde berichten, ob das geholfen hat.
Verdammt, das hat nicht funktioniert. Scheint jetzt aber ein Git-Problem zu sein. Wir hatten Dokumente zum Auschecken des Masters, aber ich dachte, das wäre nicht mehr erforderlich.
Anscheinend müssen Sie einen Branch auschecken, bevor Sie shipit
auf Master ausführen
https://github.com/intuit/auto/commit/f64d39e1f33bd8abe7c5225efc77fbc5fb1b808c#diff -fae94f6c969367129f745870a97c116f
Interessant, ich werde ein bisschen lesen, aber wird das nicht die Canary-Release unterbrechen?
Ich würde das nur beim Master machen. Alle anderen Arten von Releases erfordern keine Commit-Fähigkeit.
deploy:
- provider: script
script: if [ "$NPM_TOKEN" != "false" ];then
if [ "$TRAVIS_BRANCH" == "master" ];then
git checkout master;
fi;
yarn release;
fi;
skip-cleanup: true
on:
all_branches: true
Ich überlege, ob das npm+lerna-Plugin das einfach selbst machen soll
EDIT: Ich glaube nicht, dass ich will. da dies automatisch ein anderes Verhalten unterbrechen kann und dies sehr von der Build-Plattform abhängt. Ich werde nur ein paar Dokumente dazu hinzufügen
Tut mir leid, wenn dies etwas aus dem Rahmen gerät, aber es sieht so aus, als ob die Änderung auch den PR-Build gebrochen hat.
Aus irgendeinem Grund wird das NPM_TOKEN jetzt nicht verwendet.
https://travis-ci.org/kenshoo/react-tree/builds/654591331#L303
Gibt es eine Chance, dass npmrc nicht richtig generiert wird?
Ich glaube, ich habe die Yml falsch geschrieben sh: 1: [: checkout-master-on-release: unexpected operator
Wir können diese PR mit Ihren Ergebnissen aktualisieren: https://github.com/intuit/auto/pull/990/files
Sieht so aus, als hätte die letzte Änderung funktioniert
https://github.com/kenshoo/react-tree/blob/master/.travis.yml ist die endgültige Version.
Wie ich bereits erwähnt habe, musste ich der Verzweigungsprüfung etwas mehr Logik hinzufügen.
Vielen Dank für die Hilfe!