Skip to content

Update navigation menu #402

Update navigation menu

Update navigation menu #402

Workflow file for this run

name: Build Core
on:
push:
branches:
- main
- develop
- release/*
- feature/*
- fix/*
pull_request:
branches:
- main
- develop
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
env:
MAVEN_CLI_OPTS: "-T 8 -s ci/ci_maven_settings.xml --batch-mode --errors --fail-at-end --show-version --no-transfer-progress -DinstallAtEnd=true -DdeployAtEnd=true"
MAVEN_PROFILES: ""
COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
strategy:
matrix:
build: [
{
type: "frontend",
maven-projects: "ui"
},
{
type: "backend",
maven-projects: "!ui"
}
]
steps:
- uses: actions/checkout@v3
- name: Set up JDK 19
uses: actions/setup-java@v3
with:
java-version: '19'
distribution: 'temurin'
cache: maven
- uses: s4u/maven-settings-action@v2.8.0
with:
path: ci/ci_maven_settings.xml
githubServer: false
servers: '[
{
"id": "ghcr.io",
"username": "${{github.actor}}",
"password": "${{secrets.GITHUB_TOKEN}}"
}
]'
- name: Build '${{ matrix.build.type }}' with Maven and push Docker Images
if: github.event_name != 'pull_request' && (github.ref_name == 'develop' || github.ref_name == 'main' || startsWith(github.ref_name, 'release/'))
run: mvn $MAVEN_PROFILES $MAVEN_CLI_OPTS --projects '${{ matrix.build.maven-projects }}' deploy
- name: Build '${{ matrix.build.type }}' with Maven
if: github.event_name == 'pull_request' || startsWith(github.ref_name, 'feature/') || startsWith(github.ref_name, 'fix/')
run: mvn $MAVEN_PROFILES $MAVEN_CLI_OPTS --projects '${{ matrix.build.maven-projects }}' clean org.jacoco:jacoco-maven-plugin:prepare-agent install -q org.jacoco:jacoco-maven-plugin:report -Pcoverage verify
- name: Build Coveralls Report
if: ${{ env.COVERALLS_TOKEN != '' && matrix.build.type == 'backend' && (github.event_name == 'pull_request' || startsWith(github.ref_name, 'feature/') || startsWith(github.ref_name, 'fix/')) }}
run: mvn jacoco:report coveralls:report -DrepoToken=$COVERALLS_TOKEN
env:
GITHUB_TOKEN: ${{ github.token }}
COVERALLS_TOKEN: ${{ secrets.COVERALLS_TOKEN }}
- name: Log test output on failure
if: failure() || cancelled()
run: find . -type f -path "*test-reports/*-output.txt" -exec tail -n +1 {} +
deploy-staging-environment:
needs: build
if: github.event_name != 'pull_request' && (github.ref_name == 'develop' || github.ref_name == 'main' || startsWith(github.ref_name, 'release/'))
runs-on: self-hosted
env:
STAGING_VM_IP: ${{ github.ref_name == 'develop' && '10.17.165.36' || '10.17.166.74' }}
STAGING_VM_HOSTNAME: ${{ github.ref_name == 'develop' && '10.17.165.36' || '10.17.166.74' }}
steps:
- name: Deploy stack von staging VM
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{env.STAGING_VM_IP}}
username: operation
key: ${{secrets.RUNNER_PRIVATE_KEY}}
envs: STAGING_VM_HOSTNAME,STAGING_VM_IP
script: |
rm -r ~/staging/tmp || true && mkdir -p ~/staging/tmp && cd ~/staging/tmp
git clone -b ${{github.ref_name}} https://github.com/${{github.repository}}.git
cd ~/staging/tmp/slm
CORE_VERSION=$(cat pom.xml | grep -oPm1 "(?<=<revision>)[^<]+")
echo ${{secrets.GITHUB_TOKEN}} | docker login -u${{github.actor}} --password-stdin ghcr.io
docker pull ghcr.io/eclipse-slm/slm/uninstaller:$CORE_VERSION
docker run \
--rm \
--volume /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/eclipse-slm/slm/uninstaller:$CORE_VERSION
docker system prune -f
docker pull ghcr.io/eclipse-slm/slm/installer:$CORE_VERSION
docker run \
--rm \
--env SLM_HOSTNAME=$STAGING_VM_HOSTNAME \
--volume /var/run/docker.sock:/var/run/docker.sock \
--add-host $STAGING_VM_HOSTNAME:host-gateway \
ghcr.io/eclipse-slm/slm/installer:$CORE_VERSION
- name: Test stack running on staging VM
uses: appleboy/ssh-action@v0.1.10
with:
host: ${{env.STAGING_VM_IP}}
username: operation
key: ${{secrets.RUNNER_PRIVATE_KEY}}
script: |
cd ~/staging/tmp/slm/tests/backend
mvn test -Dtest=DockerStackTests
test-external-components:
needs: deploy-staging-environment
if: github.event_name != 'pull_request' && (github.ref_name == 'develop' || github.ref_name == 'main' || startsWith(github.ref_name, 'release/'))
runs-on: self-hosted
container:
image: maven:3.9-eclipse-temurin-19-focal
volumes:
- /tmp/.m2:/root/.m2
strategy:
matrix:
tests: [
{
component: "AWX",
test-class: "AWXTests"
},
{
component: "Consul",
test-class: "ConsulTests"
},
{
component: "Keycloak",
test-class: "KeycloakTests"
},
{
component: "Vault",
test-class: "VaultTests"
}
]
env:
TARGET_HOST: ${{ github.ref_name == 'develop' && '10.17.165.36' || '10.17.166.74' }}
steps:
- uses: actions/checkout@v3
- name: Run tests for '${{ matrix.tests.component }}' with Maven
run: |
cd tests/backend
mvn test -Dtest=${{ matrix.tests.test-class }}
test-internal-components:
needs: test-external-components
if: github.event_name != 'pull_request' && (github.ref_name == 'develop' || github.ref_name == 'main' || startsWith(github.ref_name, 'release/'))
runs-on: self-hosted
container:
image: maven:3.9-eclipse-temurin-19-focal
strategy:
matrix:
tests: [
{
component: "Notification Service",
test-class: "NotificationServiceTests"
},
{
component: "Resource Management",
test-class: "ResourceManagementTests"
},
{
component: "Service Management",
test-class: "ServiceManagementTests"
}
]
env:
TARGET_HOST: ${{ github.ref_name == 'develop' && '10.17.165.36' || '10.17.166.74' }}
steps:
- uses: actions/checkout@v3
- name: Run tests for '${{ matrix.tests.component }}' with Maven
run: |
cd tests/backend
mvn test -Dtest=${{ matrix.tests.test-class }}