Merge pull request #4119 from MDeLuise/improve-deviceNotificationSort #2903
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: 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' | |
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 |