Auto: Masterbuild versucht, die vorherige Version zu veröffentlichen.

Erstellt am 24. Feb. 2020  ·  18Kommentare  ·  Quelle: intuit/auto

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

  1. 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.

  2. Ich gebe eine neue PR heraus und wenn ich sie zusammenfüge, versucht shipit, 1.1 erneut zu veröffentlichen.

  3. (*) 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.

bug

Alle 18 Kommentare

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!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen