Skip to content

Improve Tests

Improve Tests #1056

Workflow file for this run

name: JFrog CLI Security Tests
on:
push:
# 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: Remove 'safe to test' label
uses: actions-ecosystem/action-remove-labels@v1
if: ${{ github.event_name != 'push' }}
with:
labels: "safe to test"
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Setup Go with cache
uses: jfrog/.github/actions/install-go-with-cache@main
- name: Run Go vet
run: go vet -v ./...
Tests:
needs: Pretest
name: ${{ matrix.suite.name }} Tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}-latest
env:
GOPROXY: direct
GRADLE_OPTS: -Dorg.gradle.daemon=false
CI: true
JFROG_CLI_LOG_LEVEL: DEBUG
strategy:
fail-fast: false
matrix:
os: [ ubuntu, windows, macos ]
suite:
- name: 'Unit'
testFlags: '--test.unit'
- name: 'Artifactory Integration'
testFlags: '--test.artifactory'
- name: 'Xray Integration'
testFlags: '--test.xray'
- name: 'XSC Integration'
testFlags: '--test.xsc'
- name: 'Audit Command Integration'
testFlags: '--test.audit'
- name: 'Other Scan Commands Integration'
testFlags: '--test.scan'
# Run Docker Integration tests only on Ubuntu
ubuntuTestFlags: '--test.scan --test.dockerScan'
- name: 'Enrich Command Integration'
testFlags: '--test.enrich'
- name: 'Git commands Integration'
testFlags: '--test.git'
steps:
# Checkout code
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
# Install dependencies
- name: Setup Go with cache
uses: jfrog/.github/actions/install-go-with-cache@main
- name: Install npm
uses: actions/setup-node@v3
with:
node-version: "16"
- name: Setup Pnpm
uses: pnpm/action-setup@v3
with:
version: 8
- name: Install Java
uses: actions/setup-java@v3
with:
java-version: "11"
distribution: "adopt"
- name: Install NuGet
uses: nuget/setup-nuget@v1
with:
nuget-version: 6.x
- name: Install dotnet
uses: actions/setup-dotnet@v3
with:
dotnet-version: '6.x'
- name: Setup Python3
uses: actions/setup-python@v4
with:
python-version: "3.x"
- name: Setup Pipenv
run: python -m pip install pipenv
- name: Setup Poetry
run: python -m pip install poetry
- name: Setup Conan
run: |
python -m pip install conan
conan profile detect
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
with:
gradle-version: 7.6
# Test
- name: Run tests
run: go test -v github.com/jfrog/jfrog-cli-security --race --timeout 30m -cover ${{ matrix.os == 'ubuntu' && matrix.suite.ubuntuTestFlags || matrix.suite.testFlags }} --jfrog.url=${{ secrets.PLATFORM_URL }} --jfrog.adminToken=${{ secrets.PLATFORM_ADMIN_TOKEN }} --test.containerRegistry=${{ secrets.CONTAINER_REGISTRY }} --ci.runId=${{ runner.os }}-sec-test