Skip to content

Merge pull request #3 from catenax-ng/feature/CXAR-918-binding-agents… #1

Merge pull request #3 from catenax-ng/feature/CXAR-918-binding-agents…

Merge pull request #3 from catenax-ng/feature/CXAR-918-binding-agents… #1

Workflow file for this run

#
# Copyright (c) 2023 T-Systems International GmbH
# Copyright (c) 2021, 2023 Contributors to the Eclipse Foundation
#
# See the NOTICE file(s) distributed with this work for additional
# information regarding copyright ownership.
#
# This program and the accompanying materials are made available under the
# terms of the Apache License, Version 2.0 which is available at
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
---
name: "Build"
on:
push:
branches:
- main
- releases
tags:
- 'v*.*.*'
- 'v*.*.*-*'
release:
types:
- published
pull_request:
paths-ignore:
- 'charts/**'
- 'docs/**'
- '**/*.md'
branches:
- '*'
workflow_dispatch:
branches:
- 'releases/**'
env:
IMAGE_NAMESPACE: "tractusx"
concurrency:
# cancel only running jobs on pull requests
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
pre_job:
# continue-on-error: true # Uncomment once integration is finished
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v5
with:
# All of these options are optional, so you can remove them if you are happy with the defaults
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'true'
do_not_skip: '["push", "pull_request", "workflow_dispatch", "schedule"]'
build_java:
name: Build Java
runs-on: ubuntu-latest
permissions: write-all
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
strategy:
fail-fast: false
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
# We need to manually instruct maven
- uses: ./.github/actions/setup-java
- name: Login to GitHub Container Registry
if: ${{ (github.repository == 'catenax-ng/product-agents' || github.repository == 'eclipse-tractusx/knowledge-agents') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
uses: docker/login-action@v2
with:
# Use existing DockerHub credentials present as secrets
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Deploy Java via Maven
if: ${{ (github.repository == 'catenax-ng/product-agents' || github.repository == 'eclipse-tractusx/knowledge-agents') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
run: |
./mvnw -s settings.xml deploy
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build Java via Maven
if: ${{ ( github.repository != 'catenax-ng/product-agents' && github.repository != 'eclipse-tractusx/knowledge-agents') || (github.ref != 'refs/heads/main' && !startsWith(github.ref, 'refs/tags/v')) }}
run: |
./mvnw -s settings.xml install
env:
GITHUB_ACTOR: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Create SemVer or ref tags dependent of trigger event
- name: Docker Meta Conforming Agent
id: meta-conf
uses: docker/metadata-action@v4
with:
images: |
${{ env.IMAGE_NAMESPACE }}/conforming-agent
# Automatically prepare image tags; See action docs for more examples.
# semver patter will generate tags like these for example :1 :1.2 :1.2.3
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
- name: Conforming Agent Container Build and push
uses: docker/build-push-action@v3
with:
context: conforming-agent/.
file: conforming-agent/src/main/docker/Dockerfile
# Build image for verification purposes on every trigger event. Only push if event is not a PR
push: ${{ (github.repository == 'catenax-ng/product-agents' || github.repository == 'eclipse-tractusx/knowledge-agents') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
tags: ${{ steps.meta-conf.outputs.tags }}
labels: ${{ steps.meta-conf.outputs.labels }}
# Create SemVer or ref tags dependent of trigger event
- name: Docker Meta Provisioning Agent
id: meta-prov
uses: docker/metadata-action@v4
with:
images: |
${{ env.IMAGE_NAMESPACE }}/provisioning-agent
# Automatically prepare image tags; See action docs for more examples.
# semver patter will generate tags like these for example :1 :1.2 :1.2.3
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
- name: Provisioning Agent Container Build and push
uses: docker/build-push-action@v3
with:
context: provisioning-agent/.
file: provisioning-agent/src/main/docker/Dockerfile
# Build image for verification purposes on every trigger event. Only push if event is not a PR
push: ${{ (github.repository == 'catenax-ng/product-agents' || github.repository == 'eclipse-tractusx/knowledge-agents') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
tags: ${{ steps.meta-prov.outputs.tags }}
labels: ${{ steps.meta-prov.outputs.labels }}
# Create SemVer or ref tags dependent of trigger event
- name: Docker Meta Remoting Agent
id: meta-remote
uses: docker/metadata-action@v4
with:
images: |
${{ env.IMAGE_NAMESPACE }}/remoting-agent
# Automatically prepare image tags; See action docs for more examples.
# semver patter will generate tags like these for example :1 :1.2 :1.2.3
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
- name: Remoting Agent Container Build and push
uses: docker/build-push-action@v3
with:
context: remoting-agent/.
file: remoting-agent/src/main/docker/Dockerfile
# Build image for verification purposes on every trigger event. Only push if event is not a PR
push: ${{ (github.repository == 'catenax-ng/product-agents' || github.repository == 'eclipse-tractusx/knowledge-agents') && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) }}
tags: ${{ steps.meta-remote.outputs.tags }}
labels: ${{ steps.meta-remote.outputs.labels }}
# Report unit test output to github job
- if: success() || failure()
name: Java Test Report
uses: dorny/test-reporter@v1
with:
name: Test Report Java
path: '**/surefire-reports/TEST-*.xml'
reporter: java-junit