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:
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
jdk and others by default. So we can remove
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
That's all. Enjoy hacking with Travis CI!