Skip to content

Merge pull request #689 from FraunhoferISST/fix/687-fix-integration-t… #1462

Merge pull request #689 from FraunhoferISST/fix/687-fix-integration-t…

Merge pull request #689 from FraunhoferISST/fix/687-fix-integration-t… #1462

###############################################################
# Copyright (c) 2023 Contributors to the Eclipse Foundation
# Copyright (c) 2023 Volkswagen AG
# Copyright (c) 2023 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V.
# (represented by Fraunhofer ISST)
#
# 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 - Docker image Frontend (SemVer)
on:
push:
branches:
- main
# trigger events for SemVer like tags
tags:
# match e.g. 1.1.1 and 1.1.1-rc1
- '[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+-*'
pull_request:
branches:
- main
env:
IMAGE_NAMESPACE: "tractusx"
IMAGE_NAME: "app-puris-frontend"
REF_NAME: "${{ github.ref_name }}"
# variables needed for scripts/legal-notice.sh
SERVER_URL: "${{ github.server_url }}"
REPOSITORY: "${{ github.repository }}"
jobs:
docker-frontend:
if: github.repository_owner == 'eclipse-tractusx' # prevent running on forks
runs-on: ubuntu-latest
permissions:
packages: write
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: Setup Node
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
with:
node-version: 20
registry-url: https://registry.npmjs.org/
- name: Get npm version
id: npm-tag
uses: martinbeentjes/npm-get-version-action@3cf273023a0dda27efcd3164bdfb51908dd46a5b # v1.3.1
- name: Install Dependencies
working-directory: ./frontend
run: npm install
# Replace "about license" information
- name: Update legal notice
working-directory: ./frontend
run: bash ./scripts/legal-notice.sh
# Copy user guide to frontend dir for building
- name: Copy user guide
run: |
cp -r ./docs/user/img ./frontend/public
cp ./docs/user/User_Guide.md ./frontend/src/assets/User_Guide.md
- name: Build for Docker
working-directory: ./frontend
run: npm run dockerbuild
# Copy legal information from root dir to frontend dir for publishing
- name: Copy and paste legal information
run: |
cp ./DEPENDENCIES_FRONTEND ./frontend/DEPENDENCIES
cp ./LICENSE ./frontend/LICENSE
cp ./NOTICE.md ./frontend/NOTICE.md
cp ./SECURITY.md ./frontend/SECURITY.md
cp ./LICENSE_non_code ././frontend/LICENSE_non_code
# Needed to create multi-platfrom image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
# Create SemVer or ref tags dependent of trigger event
- name: Docker meta
id: meta
uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1
with:
images: |
${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}
tags: |
# set latest tag for main branch
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }},event=pr
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}
type=semver,pattern={{major}}.{{minor}}
- name: DockerHub login
if: github.event_name != 'pull_request'
uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 # v6.9.0
with:
context: ./frontend
file: ./frontend/Dockerfile.prebuilt
platforms: linux/amd64, linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# https://github.com/peter-evans/dockerhub-description
- name: Update Docker Hub description
if: github.event_name != 'pull_request'
uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae # v4.0.0
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}
repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}
readme-filepath: ./frontend/DOCKER_NOTICE.md