2015-03-16 23 views
9

Ich arbeite an einem Projekt, das zu einem Provider implementiert wird, der derzeit nicht von Travis unterstützt wird. Daher habe ich meinen Bereitstellungsschritt in einem after_success-Block geschrieben. Ich möchte jedoch Travis so konfigurieren, dass nur neue Tags bereitgestellt werden. Ich weiß, dass dies möglich ist, wenn der deploy: Block unter Verwendung vonDurchführen von after_success-Aktionen bedingt?

deploy: 
    # ... 
    on: 
    tags: true 

zum deploy: Block hinzugefügt wird.

Ist dasselbe in after_success möglich? Wenn nicht, gibt es einen anderen Weg, nur bestimmte Aktionen in after_success durchzuführen, wenn ich auf einem neuen Tag bin?

Wenn Travis das nicht unterstützt, kann ich einfach ein Shellskript schreiben, um nach allen Erfolgen zu laufen, nach einem neuen Tag zu schauen, und dann die Bereitstellung bedingungsbedingt zu machen, aber das wäre mir lieber lieber möglich Travis macht es automatisch.

Danke!

Antwort

22

Ja! Ich brauche die genau die gleiche Sache und arbeiteten um ihn herum, indem Sie:

after_success: 
    if ([ "$TRAVIS_BRANCH" == "master" ] || [ ! -z "$TRAVIS_TAG" ]) && 
     [ "$TRAVIS_PULL_REQUEST" == "false" ]; then 
    echo "This will deploy!" 
    else 
    echo "This will not deploy!" 
    fi 

Ich hoffe, dass sie die auf vorstellen: tags: Funktionalität für das after_success Ereignis, es wird die Dinge einfacher machen und die Build-Skript sauberer halten.

+0

Ausgezeichnet, vielen Dank. Ich wusste nicht, dass Sie ein Bash-Skript in das '.travis.yml' einbetten könnten - ich wollte eine separate Skriptdatei schreiben und Travis das Skript ausführen lassen. –

+0

Gern geschehen! Travis ist großartig, super flexibel! – AdaptiveCoder

+0

Definitiv ein großartiger Service! Danke nochmal für deine Hilfe. –