Pr context #23
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Integration Tests | |
on: | |
push: | |
branches: | |
- master | |
# Triggers the workflow on labeled PRs only. | |
pull_request_target: | |
types: [ labeled ] | |
# Ensures that only the latest commit is running for each PR at a time. | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
Pretest: | |
if: contains(github.event.pull_request.labels.*.name, 'safe to test') || github.event_name == 'push' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Unlabel 'safe to test' | |
uses: actions-ecosystem/action-remove-labels@v1 | |
if: ${{github.event_name != 'push' }} | |
with: | |
labels: 'safe to test' | |
- name: Checkout PR head branch | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} | |
- name: Print current branch | |
run: git branch --show-current | |
Distribution: | |
needs: Pretest | |
name: Distribution (${{ matrix.os }}) - check! | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor:test --tests *DistributionManagerTest* | |
env: | |
BITESTS_PLATFORM_URL: ${{ secrets.PLATFORM_URL }} | |
BITESTS_PLATFORM_USERNAME: ${{ secrets.PLATFORM_USER }} | |
BITESTS_PLATFORM_ADMIN_TOKEN: ${{ secrets.PLATFORM_ADMIN_TOKEN }} | |
Extractor: | |
needs: Pretest | |
name: Extractor (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Artifactory | |
run: | | |
go install github.com/jfrog/jfrog-testing-infra/local-rt-setup@latest | |
~/go/bin/local-rt-setup | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-api:test build-info-client:test build-info-extractor:test build-info-vcs:test -PexcludeTests=**/*DistributionManager* | |
env: | |
BITESTS_PLATFORM_ADMIN_TOKEN: ${{ env.JFROG_TESTS_LOCAL_ACCESS_TOKEN }} | |
Go: | |
needs: Pretest | |
name: Go (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-go:test | |
env: | |
BITESTS_PLATFORM_URL: ${{ secrets.PLATFORM_URL }} | |
BITESTS_PLATFORM_USERNAME: ${{ secrets.PLATFORM_USER }} | |
BITESTS_PLATFORM_ADMIN_TOKEN: ${{ secrets.PLATFORM_ADMIN_TOKEN }} | |
Gradle: | |
needs: Pretest | |
name: Gradle (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
env: | |
GRADLE_OPTS: -Dorg.gradle.daemon=false | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Artifactory | |
run: | | |
go install github.com/jfrog/jfrog-testing-infra/local-rt-setup@latest | |
~/go/bin/local-rt-setup | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-gradle:test | |
Ivy: | |
needs: Pretest | |
name: Ivy (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-ivy:test | |
Maven: | |
needs: Pretest | |
name: Maven (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-maven3:test | |
npm: | |
needs: Pretest | |
name: npm (${{ matrix.os }}) - node ${{ matrix.node }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, windows-latest ] | |
# Testing both npm < 8.19 and npm >= 8.19 | |
node: [ 15, 20 ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install npm | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Config list | |
run: npm config ls -l | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Artifactory | |
run: | | |
go install github.com/jfrog/jfrog-testing-infra/local-rt-setup@latest | |
~/go/bin/local-rt-setup | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-npm:test | |
env: | |
# We use localhost because npm does not support authenticating with registries started with 127.0.0.1 | |
BITESTS_PLATFORM_URL: http://localhost:8081 | |
NuGet: | |
needs: Pretest | |
name: NuGet (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, macos-13, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install NuGet | |
uses: nuget/setup-nuget@v2 | |
with: | |
nuget-version: 6.x | |
- name: Install dotnet | |
uses: actions/setup-dotnet@v2 | |
with: | |
dotnet-version: "3.x" | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Artifactory | |
run: | | |
go install github.com/jfrog/jfrog-testing-infra/local-rt-setup@latest | |
~/go/bin/local-rt-setup | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-nuget:test | |
Python: | |
needs: Pretest | |
name: Python (${{ matrix.os }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Setup Python3 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.x" | |
- name: Setup Virtualenv | |
run: python -m venv env | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
cache: false | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Setup Artifactory | |
run: | | |
go install github.com/jfrog/jfrog-testing-infra/local-rt-setup@latest | |
~/go/bin/local-rt-setup | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-pip:test | |
env: | |
BITESTS_ARTIFACTORY_PIP_ENV: fromJSON('{"Linux":"env/bin","macOS":"env/bin","Windows":"env\\Scripts"}')[runner.os] | |
Docker: | |
needs: Pretest | |
name: Docker | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: "8" | |
distribution: "zulu" | |
- name: Cache local Maven repository | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: | | |
${{ runner.os }}-maven- | |
- name: Containerize Artifactory | |
run: | | |
cd ./build-info-extractor-docker/src/test/resources/artifactory/ | |
./start.sh | |
env: | |
RTLIC: ${{secrets.RTLIC}} | |
GOPROXY: direct | |
- name: Wait for Artifactory to finish loading | |
uses: nev7n/wait_for_response@v1 | |
with: | |
url: "http://localhost:8082" | |
responseCode: 200 | |
timeout: 600000 | |
interval: 500 | |
# Run tests | |
- name: Run Tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build-info-extractor-docker:test |