Verschaffen Sie sich auf dieser Seite einen Überblick http://tech.smarthr.jp/entry/2017/07/12/073000
Offizielle Dokumentation des Migrationsverfahrens https://circleci.com/docs/2.0/migrating-from-1-2/
Dokumente, die den Endpunkt für die Konfigurationsübersetzung verwenden https://circleci.com/docs/2.0/config-translation/
Angenommen, die Build-Seite in CircleCI ist die folgende URL:
https://circleci.com/gh/:username/:project
Im obigen Fall wäre der Konfigurationsübersetzungsendpunkt eine URL wie die folgende: Hier wird der Zweig als "Entwickeln" angegeben.
https://circleci.com/api/v1.1/project/github/:username/:project/config-translation?branch=develop
Die Datei wird mit dem Dateinamen "config-translation" heruntergeladen.
NG-Muster Ich habe den Benutzernamen meines GitHub-Kontos auf ": Benutzername" gesetzt und das folgende Antwortergebnis erhalten.
{
"message" : "{\"message\":\"Not Found\",\"documentation_url\":\"https://developer.github.com/v3/repos/#get\"}"
}
Beachten Sie Folgendes https://circleci.com/docs/2.0/migrating-from-1-2/
Erstellen Sie einen Ordner ".circleci" im Projektstamm, verschieben Sie die heruntergeladene Konfigurationsdatei dorthin und benennen Sie die Datei in "config.yml" um.
$ mkdir .circleci
$ mv /hoge/config-translation .circleci/config.yml
Die heruntergeladene Einstellungsdatei enthält keine Beschreibung von "Bereitstellung". Sie müssen sie daher selbst schreiben.
#!/bin/bash --login
mvn integration-test
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.104 s
[INFO] Finished at: 2018-04-09T04:25:24+00:00
[INFO] Final Memory: 15M/904M
[INFO] ------------------------------------------------------------------------
[ERROR] The goal you specified requires a project to execute but there is no POM in this directory (/home/ubuntu/topgate/hogehoge/server). Please verify you invoked Maven from the correct directory. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MissingProjectException
Exited with code 1
Es wird gesagt, dass pom.xml nicht existiert.
pom.xml existiert in / server / pom.xml.
In 1.0 war die folgende Beschreibung OK.
general:
build_dir: server
In 2.0 wird es wie folgt konvertiert, aber da es in working_directory auscheckt, wird es in ~ / topgate / hogehoge / server / server anstelle von ~ / topgate / hogehoge / server geändert. , Pom.xml existierte und ohne pom.xml ist ein Fehler aufgetreten.
version: 2
jobs:
build:
working_directory: ~/topgate/hogehoge/server
Ich kann mir die folgenden zwei Lösungen vorstellen. Vorschlag (1) Legen Sie bei der Ausführung des Befehls mvn das Arbeitsverzeichnis ~ / topgate / hogehoge / server / server als Option fest.
- run:
working_directory: ~/topgate/hogehoge/server/server
command: mvn dependency:go-offline || true
Vorschlag (2) Legen Sie im Checkout-Befehl path: ~ / topgate / hogehoge fest und geben Sie den Ordner der nächsthöheren Ebene an.
- checkout:
path: ~/topgate/hogehoge
Workflows funktionierten nicht und ich bemerkte den Unterschied in der folgenden Beschreibung nicht und blieb stecken.
NG-Muster (Filter befindet sich an derselben Position wie Build.)
jobs:
- build:
filters:
tags:
only: /.*/
OK-Muster (Filter ist die untergeordnete Position von Build.)
jobs:
- build:
filters:
tags:
only: /.*/
In 1.0 wurde die folgende Beschreibung gemacht, um mit git tag bereitzustellen.
deployment:
prod:
tag: /release-.*/
#・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
dev:
branch: develop
In 2.0 beginnt der Job nicht mit git tag, sondern der Job beginnt mit workflows.
Git Tag Job Execution https://circleci.com/docs/2.0/workflows/#git-tag-job-execution
Jobs mit 2.0 reagieren standardmäßig auf Zweigänderungen, jedoch nicht auf Tagging.
Sie müssen also einen Filter für das Tag mithilfe von "Filtern" erstellen, damit der Job mit dem Tagging beginnt.
Eigentlich wurde es wie folgt beschrieben.
version: 2
jobs:
build:
#・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
- deploy:
name: deploy to prod
command: |
if [[ "${CIRCLE_TAG}" =~ ^release-.* ]]; then
#Befehl bereitstellen (weggelassen) ・ ・ ・ ・ ・ ・ ・ ・ ・
fi
- deploy:
name: deploy to dev
command: |
if [ "${CIRCLE_BRANCH}" == "develop" ]; then
#Befehl bereitstellen (weggelassen) ・ ・ ・ ・ ・ ・ ・ ・ ・
fi
#・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・
workflows:
version: 2
build-deploy:
jobs:
- build:
filters:
tags:
only: /.*/
Recommended Posts