Today I found a Travis CI blog post regarding build stage on Travis CI. Now it goes GA so we all can enjoy this feature.
Here is the my PR to introduce build stage. In my feeling, it has one good point:
No more if
in analysis and deploy part
When I run analysis like SonarCloud, it was necessary to limit target JVM & environment variable to make PR page easy to read. For example, here is a .travis.yml
snippet that runs analysis only with specific condition:
jdk:
- oraclejdk8
- oraclejdk9
script:
- ./mvnw org.jacoco:jacoco-maven-plugin:prepare-agent verify -B
- if [[ $TRAVIS_JDK_VERSION == "oraclejdk8" ]]; then ./mvnw sonar:sonar -B; fi
In case of build stage, script runs with the first value in env
, jdk
and others by default. So we can remove if
from .travis.yml
:
jdk:
- oraclejdk8
- oraclejdk9
script:
- ./mvnw verify -B
jobs:
include:
- stage: analysis
script:
- ./mvnw org.jacoco:jacoco-maven-plugin:prepare-agent verify sonar:sonar -B
One point, is that, each build stage and job doesn't share generated files. So here we need to run verify
phase even in analysis
stage, to generate analysis targets (.class
file in this case).
This merit works even to deploy phase. This feature should reduce complexity in our .travis.yml
.
That's all. Enjoy hacking with Travis CI!
Top comments (0)