Skip to content

✅ [CI] Added Sonar analysis #3133

✅ [CI] Added Sonar analysis

✅ [CI] Added Sonar analysis #3133

Workflow file for this run

name: Kapua CI
on: [ push, pull_request ] # Triggers the workflow on push or pull request events
env: #these 2 env variables defines respectively the maven projects were cucumber tests resides and maven projects were consumers applications needed for docker images building resides.
TEST_PROJECTS: "org.eclipse.kapua:kapua-security-test,org.eclipse.kapua:kapua-qa-integration,org.eclipse.kapua:kapua-scheduler-test,org.eclipse.kapua:kapua-user-test,org.eclipse.kapua:kapua-system-test,org.eclipse.kapua:kapua-job-test,org.eclipse.kapua:kapua-device-registry-test,org.eclipse.kapua:kapua-account-test,org.eclipse.kapua:kapua-tag-test,org.eclipse.kapua:kapua-translator-test"
APP_PROJECTS: "org.eclipse.kapua:kapua-service-authentication-app,org.eclipse.kapua:kapua-consumer-lifecycle-app,org.eclipse.kapua:kapua-consumer-telemetry-app"
# Secrets
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4 # Checks out a copy of the repository on the ubuntu-latest machine
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- uses: actions/setup-node@v4 # Installs Node and NPM
with:
node-version: 16
- name: Install Swagger CLI # Installs Swagger CLI to bundle OpenAPI files
run: 'npm install -g @apidevtools/swagger-cli'
- uses: actions/cache@v4 # Cache local Maven repository to reuse dependencies
with:
path: ~/.m2/repository
key: ${{ github.run_id }}-${{ github.run_number }}-maven-cache
- run: mvn -v
- run: docker images -a # used as log (should show only GitHub environment standard docker images; if kapua images are present, something is wrong)
- run: mvn -B -DskipTests clean install -T 1C
test-brokerAcl:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@brokerAcl'
needs-docker-images: 'true'
test-tag:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@tag'
needs-docker-images: 'false'
test-broker:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@broker'
needs-docker-images: 'true'
test-device:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@device'
needs-docker-images: 'true'
test-device-management:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@deviceManagement'
needs-docker-images: 'true'
test-connection:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@connection'
needs-docker-images: 'true'
test-datastore:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@datastore'
needs-docker-images: 'true'
test-user:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@user'
needs-docker-images: 'false'
test-userIntegrationBase:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@userIntegrationBase'
needs-docker-images: 'true'
test-userIntegration:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@userIntegration'
needs-docker-images: 'true'
test-security:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@security'
needs-docker-images: 'false'
test-jobsAndScheduler:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobs or @scheduler'
needs-docker-images: 'false'
test-jobsIntegrationBase:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobsIntegrationBase'
needs-docker-images: 'true'
test-jobsIntegration:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobsIntegration'
needs-docker-images: 'true'
test-accountAndTranslator:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@account or @translator'
needs-docker-images: 'false'
test-jobEngineStepDefinitions:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineStepDefinitions'
needs-docker-images: 'true'
test-jobEngineStartOfflineDevice:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineStartOfflineDevice'
needs-docker-images: 'true'
test-jobEngineStartOnlineDevice:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineStartOnlineDevice'
needs-docker-images: 'true'
test-jobEngineRestartOfflineDevice:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineRestartOfflineDevice'
needs-docker-images: 'true'
test-jobEngineRestartOnlineDevice:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineRestartOnlineDevice'
needs-docker-images: 'true'
test-jobEngineRestartOnlineDeviceSecondPart:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineRestartOnlineDeviceSecondPart'
needs-docker-images: 'true'
test-jobEngineServiceStop:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@jobEngineServiceStop'
needs-docker-images: 'true'
test-RoleAndGroup:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@role or @group'
needs-docker-images: 'false'
test-deviceRegistry:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@deviceRegistry'
needs-docker-images: 'true'
test-endpoint:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@endpoint'
needs-docker-images: 'true'
test-api-auth:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@rest_auth'
needs-docker-images: 'true'
needs-api-docker-image: 'true'
test-api-corsfilter:
needs: test-endpoint # test suite dependent on the endpoint service (if it has failings it's useless to perform these tests)
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@rest_cors'
needs-docker-images: 'true'
needs-api-docker-image: 'true'
test-api-parsing:
needs: test-api-auth
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
tag: '@rest_parsing'
needs-docker-images: 'true'
needs-api-docker-image: 'true'
junit-tests:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- name: Clones Kapua repo inside the runner
uses: actions/checkout@v4
- uses: ./.github/actions/runTestsTaggedAs
with:
needs-docker-images: 'false'
run-junit: 'true'
build-javadoc:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- uses: actions/setup-node@v4 # Installs Node and NPM
with:
node-version: 16
- name: Install Swagger CLI # Installs Swagger CLI to bundle OpenAPI files
run: 'npm install -g @apidevtools/swagger-cli'
- uses: actions/cache@v4 # Cache local Maven repository to reuse dependencies
with:
path: ~/.m2/repository
key: ${{ github.run_id }}-${{ github.run_number }}-maven-cache
- run: mvn -B -DskipTests install javadoc:jar