2017-06-21 1 views
0

Lieferbar CI UI zeigt mir folgende Fehler:Wie zu beheben "Länge muss weniger als 40 sein" Fehler in shippable.yml Datei?

ERROR: 1 Validierungsfehler erkannt: Wert '[if [ develop == master ]; then xxx-xx-prod; else xxx-xx-dev; fi]' bei 'environmentNames' Einschränkung zu erfüllen, schlug fehl: Mitglied muss Bedingung erfüllen: [Mitglied muss Länge weniger als oder gleich 40, Mitglied haben Länge größer als oder gleich muss 4]

das ist mein shippable.yml Datei:

branches: 
    only: 
    - develop 
    - master 
build: 
    ci: 
    - "echo 'CI is running'" 
    post_ci: 
    - "docker build -t=\"xxxx/xxx-xxxx:$BRANCH.$BUILD_NUMBER\" ." 
    - "docker push xxxx/xxx-xxx:$BRANCH.$BUILD_NUMBER" 
    - "pip install --upgrade botocore" 
    - "pip install setuptools==34.0.1" 
integrations: 
    deploy: 
    - 
     application_name: seamless-ai 
     env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi 
     image_name: xxxx/xxx-xxx 
     image_tag: $BRANCH.$BUILD_NUMBER 
     integrationName: AWS-int 
     region: us-east-1 
     type: aws 
    hub: 
    - 
     integrationName: "Docker Hub" 
     type: docker 
language: node_js 

So im wesentlichen, mein Problem ist folgendes:

env_name: if [ "$BRANCH" == "master" ]; then "xxx-xx-prod"; else "xxx-xx-dev"; fi

Im Grunde, was ich tun muß, ist:

Wenn die Zweig-Master ist, dann muss env_namexxx-xx-prod anders sein, dann env_name = xxx-xx-dev

Wie kann ich dieses Problem beheben?

+0

Ihre 'if'-Anweisung ist nicht einmal die richtige Syntax in bash, weil Sie die Auswertung als ternären Operator zu erwarten scheinen (was in bash nicht existiert). – flyx

Antwort

1

Da wir sehen, dass $BRANCH innerhalb des Wertes ausgewertet wird, könnte eine mögliche Lösung darin bestehen, es in eine env-Variable zu schreiben und diese dann einfach zu ersetzen.

- if [ "$BRANCH" == "master" ]; then export ENV_NAME="xxx-xx-prod"; else export ENV_NAME="xxx-xx-dev"; fi 

und dann in deploy:

env_name: $ENV_NAME 

Ich habe keine Ahnung, ob das tatsächlich funktioniert

Dies kann durch das Hinzufügen dieser Zeile post-ci erfolgen.

+0

Es hat funktioniert! Vielen dank für Deine Hilfe. Es ist eigentlich ziemlich offensichtlich, jetzt, wo ich es sehe. – ILikeTacos

Verwandte Themen