Auto: Autorc-Konfiguration vor jeder Veröffentlichung strikt validieren

Erstellt am 6. Jan. 2019  ·  10Kommentare  ·  Quelle: intuit/auto

Bezieht sich Ihre Funktionsanfrage auf ein Problem?

Einige von uns bei Artsy arbeiten daran, viele Repos zu migrieren, um die automatische Freigabe zu verwenden. In einer Batch-Sitzung habe ich es irgendwie geschafft, die Konfiguration durcheinander zu bringen und bei mehreren Projekten noReleaseLabels anstelle von skipReleaseLabels zu verwenden. Dies führte zu einigen unnötigen Veröffentlichungen.

Beschreiben Sie die gewünschte Lösung

Ich denke, die Konfiguration sollte streng validiert werden. Wenn Werte vorhanden sind, die nicht Teil der Konfiguration sind (zB noReleaseLabels), sollte der Freigabeprozess fehlschlagen. Eine ungültige Konfiguration bedeutet wahrscheinlich, dass jemand eine schlechte Zeit hat. Ebenso, wenn ein Konfigurationsobjekt nicht mit einem erwarteten Typ übereinstimmt usw. Es scheint, als gäbe es einen Anfang für ein Json-Schema, das für diesen Zweck verwendet werden könnte ( auto-rc.json ).

Beschreiben Sie Alternativen, die Sie in Betracht gezogen haben

Wenn Sie einen einfacheren Ansatz wählen möchten, würde ich zumindest einen validate Befehl empfehlen, der die Gültigkeit der Konfiguration überprüft.

enhancement hacktoberfest released

Hilfreichster Kommentar

Bei mir dreht sich alles um beides. Daran kann ich arbeiten, muss aber bis zum Wochenende warten. Ich werde es heute Abend ruhig angehen lassen, ha. Ich werde sehen, ob ich die Typescript-Schnittstelle für den Json-Schema-Prozess einrichten kann. Denke nicht, dass es zu schwer wird. Der schwierigste Teil ist wirklich nur herauszufinden, was in das Schema passen soll.

Alle 10 Kommentare

Jest hat einen JSON-Konfigurationsvalidator - https://github.com/facebook/jest/tree/master/packages/jest-validate#jest -validate

Ich arbeite daran, ein Schema über Quicktype zu erstellen .

https://app.quicktype.io?share=vgnvzBMgaixe5c9qUCD2.

Es generiert tatsächlich auch Code, um es automatisch zu validieren ... https://app.quicktype.io?share=yxg2tubeMvnazWyklgkz. Könnten wir sowas gebrauchen?

Sollte wahrscheinlich nichts bauen, wenn ein Mensch auf eine externe Website zugreift IMO, in Gefahr generiere ich JSON- Schemas aus TypeScript-Typen über ein Node-Modul und automatisiere sie bei Deployments, dann wird es nie aus der Synchronisierung geraten

Ich mag es
Am Dienstag, 8. Januar 2019 um 5:54 Uhr schrieb Orta [email protected] :

Sollte wahrscheinlich nicht etwas bauen, wenn ein Mensch darauf zugreifen muss
externe Website IMO, in Gefahr erzeuge ich
https://github.com/danger/danger-js/blob/master/package.json#L60 JSON
Schemata
https://github.com/danger/danger-js/blob/master/source/danger-incoming-process-schema.json
von TypeScript-Typen über ein Node-Modul und automatisieren Sie sie bei Bereitstellungen, dann
Es wird nie aus der Synchronisierung geraten


Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/intuit/auto-release/issues/143#issuecomment-452306127 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/ABIyBDiYG4uWFKH6IdjG862e1UPEQCr3ks5vBKMugaJpZM4ZyUU6
.

quicktype ist ein npm-Paket, es hat auch nur eine Weboberfläche. Ich stimme zu, es sollte automatisiert werden.

Kann es eine TS-Schnittstelle nehmen und ein JSON-Schema erstellen? das wäre super

sieht aus wie Ihre Quicktype-Links tun, was ich beschreibe. das ist so cool! Es wäre ziemlich cool, diesen Teil unseres Veröffentlichungsprozesses zu machen.

Vielleicht könnten wir sogar ein Plugin erstellen, um als VSCode-Erweiterung zu veröffentlichen

Bei mir dreht sich alles um beides. Daran kann ich arbeiten, muss aber bis zum Wochenende warten. Ich werde es heute Abend ruhig angehen lassen, ha. Ich werde sehen, ob ich die Typescript-Schnittstelle für den Json-Schema-Prozess einrichten kann. Denke nicht, dass es zu schwer wird. Der schwierigste Teil ist wirklich nur herauszufinden, was in das Schema passen soll.


:rocket: Ausgabe wurde in v9.15.0 :rocket:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen