Build Info is Artifactory's open integration layer for the CI servers and build tools. The build information is sent to Artifactory in json format.
Building and testing the sources
- The code is built using Gradle and includes integration tests.
- It must run using JDK 8 and Gradle 5.6.2. If you are using different gradle version you can use the provided gradle wrapper.
- In order to run tests the following environment variables must be set:
export BITESTS_PLATFORM_URL='http://localhost:8081' export BITESTS_PLATFORM_USERNAME=admin export BITESTS_PLATFORM_ADMIN_TOKEN=admin-access-token export BITESTS_ARTIFACTORY_PIP_ENV=/Users/user/venv-test/bin
See here how to generate an admin token for the above environment variable.
Before running the tests:
- Create a generic repository named tests in Artifactory.
- Create a project with btests as its key in Artifactory.
When running the following commands to build the code, the entire testing suite is also executed. See the Testing section for configuration instructions prior to running the tests.
To build the code using the gradle wrapper in Unix run:
./gradlew clean build
To build the code using the gradle wrapper in Windows run:
gradlew clean build
To build the code using the environment gradle run:
gradle clean build
To build the code without running the tests, add to the "clean build" command the "-x test" option, for example:
./gradlew clean build -x test
To run all tests:
./gradlew clean test
./gradlew clean build-info-api:test build-info-client:test build-info-extractor:test build-info-vcs:test
./gradlew clean build-info-extractor-maven3:test
./gradlew clean build-info-extractor-gradle:test
- Add npm executable to the system search path (PATH environment variable).
- npm 7.7 or above is required.
./gradlew clean build-info-extractor-npm:test
- Add Go executable to the system search path (PATH environment variable).
- Go v1.14 or above is required.
./gradlew clean build-info-extractor-go:test
- Add Python and pip executables to the system search path (PATH environment variable).
- Pip tests must run inside a clean pip-environment. Create a virtual environment and provide its path using the 'BITESTS_ARTIFACTORY_PIP_ENV' variable. When running on a Windows machine, provide the path to the 'Scripts' directory. When running on a unix machine, provide the path to the 'bin' directory.
python -m venv buildinfo-tests-env export BITESTS_ARTIFACTORY_PIP_ENV=/Users/user/buildinfo-tests-env/bin ./gradlew clean build-info-extractor-pip:test
- Add Nuget & Dotnet executable to the system search path (PATH environment variable).
./gradlew clean build-info-extractor-nuget:test
- Docker tests run only on Linux/mac.
- Create the following docker repositories in Artifactory:
- docker-virtual (contains both docker-local & docker-remote repositories)
- In addition to the general environment variables required for running the tests, you must set the following environment variables, required for the docker tests:
localhost:8081prefix with your docker registry domain if needed.
export BITESTS_ARTIFACTORY_DOCKER_LOCAL_DOMAIN=localhost:8081/docker-local export BITESTS_ARTIFACTORY_DOCKER_REMOTE_DOMAIN=localhost:8081/docker-remote export BITESTS_ARTIFACTORY_DOCKER_VIRTUAL_DOMAIN=localhost:8081/docker-virtual export BITESTS_ARTIFACTORY_DOCKER_LOCAL_REPO=docker-local export BITESTS_ARTIFACTORY_DOCKER_REMOTE_REPO=docker-remote export BITESTS_ARTIFACTORY_DOCKER_VIRTUAL_REPO=docker-virtual export BITESTS_ARTIFACTORY_DOCKER_HOST=tcp://127.0.0.1:1234
- For OSX agents, run a Socat container:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 127.0.0.1:1234:1234 bobrik/socat TCP-LISTEN:1234,fork UNIX-CONNECT:/var/run/docker.sock
- Run tests:
./gradlew clean build-info-extractor-docker:test
Testing on Artifactory OSS
When testing with an instance of Artifactory OSS, only supported tests are for the build-info-gradle-extractor.
On Artifactory pro, the tests infrastructure will create the test repositories by REST API. To run the tests on Artifactory OSS, you should create the Gradle repositories by yourself. To run Gradle tests on Artifactory OSS:
- Start Artifactory on docker container:
docker run --name artifactory -d -p 8081:8081 -p 8082:8082 releases-docker.jfrog.io/jfrog/artifactory-oss:latest
- With your web browser, go to Artifactory UI: http://127.0.0.1:8081/artifactory
- Create 3 Gradle repositories:
- Local repository:
- Remote repository to jcenter:
- Virtual repository containing both the remote and local:
- Local repository:
- Run tests
More about build-info
Read more about build-info in the Build Integration documentation.
The release notes are available here.