diff --git a/.github/workflows/publish-image-discovery-finder.yml b/.github/workflows/publish-image-discovery-finder.yml new file mode 100644 index 0000000..943cf49 --- /dev/null +++ b/.github/workflows/publish-image-discovery-finder.yml @@ -0,0 +1,105 @@ +# Copyright (c) 2023 Copyright (c) 2023 Robert Bosch Manufacturing Solutions GmbH +# Copyright (c) 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: Public release discovery-finder +on: + push: + branches: + - main + workflow_call: + inputs: + tag: + type: string + required: true + +env: + IMAGE_NAMESPACE: tractusx + IMAGE_NAME: sldt-discovery-finder + +jobs: + build-image: + runs-on: ubuntu-22.04 + steps: + - name: Checkout if push + if: ${{ github.event_name == 'push' }} + uses: actions/checkout@v3 + - name: Checkout if workflow_dispatch + if: ${{ github.event_name == 'workflow_dispatch' }} + uses: actions/checkout@v3 + with: + ref: ${{ inputs.tag }} + - name: setup-java + uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - name: Setup Maven Action + uses: s4u/setup-maven-action@v1.7.0 + with: + java-version: 17 + - name: execute-maven-deps + working-directory: ./backend + run: mvn verify dependency:list -DskipTests -Dmaven.javadoc.skip=true -DappendOutput=false -DoutputFile=maven.deps -DincludeScope=compile + - name: install dependencies + working-directory: ./.github/actions/generate-dependencies-notice + run: npm install + - name: baselayer-licenses + uses: philips-labs/tern-action@v1.1.0 + with: + image: eclipse-temurin:17-jre-alpine + format: json + output: ./base-image-layers.json + - name: dependency-licenses + uses: ./.github/actions/generate-dependencies-notice + with: + version: ${{ github.ref_name }} + base-path: ${{ github.workspace }} + maven-deps-path: ./backend/maven.deps + base-image-layers-path: ./base-image-layers.json + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + tags: | + type=ref,event=branch,enable=${{ inputs.tag == '' }} + type=semver,pattern={{version}},value=${{ inputs.tag }} + type=semver,pattern={{major}},value=${{ inputs.tag }} + type=semver,pattern={{major}}.{{minor}},value=${{ inputs.tag }} + type=raw,value=latest,enable=${{ inputs.tag != '' }} + - name: DockerHub login + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v3 + with: + context: . + push: true + file: ./backend/Dockerfile + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + - name: Update Docker Hub description + uses: peter-evans/dockerhub-description@v3 + with: + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 906d785..d62a4e5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,4 +59,10 @@ jobs: git commit -m "Create version v${{ inputs.version }}" git tag v${{ inputs.version }} git push origin release - git push origin v${{ inputs.version }} \ No newline at end of file + git push origin v${{ inputs.version }} + call-image-release: + uses: ./.github/workflows/publish-image-discovery-finder.yml + needs: build + secrets: inherit + with: + tag: v${{ inputs.version }} \ No newline at end of file