Skip to content

[RS-XX]: Harmonize upload-artifact and download-artifact versions #IPF #1322

[RS-XX]: Harmonize upload-artifact and download-artifact versions #IPF

[RS-XX]: Harmonize upload-artifact and download-artifact versions #IPF #1322

Workflow file for this run

# Copyright 2023 Airbus
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://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.
name: Build RS-Core
on:
push:
paths:
- "rs-core/**"
- "rs-libs/**"
- ".github/workflows/build-ci.yaml"
- ".github/actions/**"
branches:
- "!main"
- "release/**"
- "develop**"
- "stac-nativeapi**"
- "cadip**"
workflow_dispatch:
env:
IMAGE_NAME: rs-core
VERSION: 3.32.1
COMMIT_ID: ${{ github.sha }}
ARTIFACTORY_BASE: artifactory.coprs.esa-copernicus.eu
ARTIFACTORY_PROJECT_DOCKER: rs-docker
ARTIFACTORY_PROJECT_DOCKER_PRIVATE: rs-docker-private
ARTIFACTORY_PROJECT_MAVEN: rs-maven
jobs:
lib-changes:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- name: Extract branch or tag name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF} | cut -d / -f3-)"
id: extract_branch
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
base: ${{ steps.extract_branch.outputs.branch }}
filters: |
lib-commons:
- 'rs-libs/lib-commons/**'
- 'rs-libs/pom.xml'
app-status:
- 'rs-libs/app-status/**'
- 'rs-libs/pom.xml'
message-adapter:
- 'rs-libs/message-adapter/**'
- 'rs-libs/pom.xml'
xml-tools:
- 'rs-libs/xml-tools/**'
- 'rs-libs/pom.xml'
error-repo-client:
- 'rs-libs/error-repo-client/**'
- 'rs-libs/pom.xml'
obs-sdk:
- 'rs-libs/obs-sdk/**'
- 'rs-libs/pom.xml'
metadata-client:
- 'rs-libs/metadata-client/**'
- 'rs-libs/pom.xml'
prip-client:
- 'rs-libs/prip-client/**'
- 'rs-libs/pom.xml'
auxip-client:
- 'rs-libs/auxip-client/**'
- 'rs-libs/pom.xml'
xbip-client:
- 'rs-libs/xbip-client/**'
- 'rs-libs/pom.xml'
edip-client:
- 'rs-libs/edip-client/**'
- 'rs-libs/pom.xml'
cadip-client:
- 'rs-libs/cadip-client/**'
- 'rs-libs/pom.xml'
data-lifecycle-client:
- 'rs-libs/data-lifecycle-client/**'
- 'rs-libs/pom.xml'
jacoco-report:
- 'rs-libs/jacoco-report/**'
- 'rs-libs/pom.xml'
core-changes:
runs-on: ubuntu-latest
outputs:
packages: ${{ steps.filter.outputs.changes }}
steps:
- name: Extract branch or tag name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF} | cut -d / -f3-)"
id: extract_branch
- uses: actions/checkout@v2
- uses: dorny/paths-filter@v2
id: filter
with:
base: ${{ steps.extract_branch.outputs.branch }}
filters: |
compression-worker:
- 'rs-core/compression-worker/**'
- 'rs-core/pom.xml'
distribution-worker:
- 'rs-core/distribution-worker/**'
- 'rs-core/pom.xml'
dlq-manager:
- 'rs-core/dlq-manager/**'
- 'rs-core/pom.xml'
ingestion-filter:
- 'rs-core/ingestion-filter/**'
- 'rs-core/pom.xml'
ingestion-trigger:
- 'rs-core/ingestion-trigger/**'
- 'rs-core/pom.xml'
ingestion-worker:
- 'rs-core/ingestion-worker/**'
- 'rs-core/pom.xml'
metadata-catalog-extraction:
- 'rs-core/metadata-catalog-extraction/**'
- 'rs-core/pom.xml'
metadata-catalog-searchcontroller:
- 'rs-core/metadata-catalog-searchcontroller/**'
- 'rs-core/pom.xml'
native-api:
- 'rs-core/native-api/**'
- 'rs-core/pom.xml'
data-lifecycle-worker:
- 'rs-core/data-lifecycle-worker/**'
- 'rs-core/pom.xml'
eviction-management-worker:
- 'rs-core/eviction-management-worker/**'
- 'rs-core/pom.xml'
ddip-frontend:
- 'rs-core/ddip-frontend/**'
- 'rs-core/pom.xml'
prip-frontend:
- 'rs-core/prip-frontend/**'
- 'rs-core/pom.xml'
preparation-worker:
- 'rs-core/preparation-worker/**'
- 'rs-core/pom.xml'
execution-worker:
- 'rs-core/execution-worker/**'
- 'rs-core/pom.xml'
request-parking-lot:
- 'rs-core/request-parking-lot/**'
- 'rs-core/pom.xml'
cronbased-trigger:
- 'rs-core/cronbased-trigger/**'
- 'rs-core/pom.xml'
gg-scan:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: GitGuardian scan
uses: GitGuardian/ggshield-action@master
env:
GITHUB_PUSH_BEFORE_SHA: ${{ github.event.before }}
GITHUB_PUSH_BASE_SHA: ${{ github.event.base }}
GITHUB_PULL_BASE_SHA: ${{ github.event.pull_request.base.sha }}
GITHUB_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
build-libs:
needs: [lib-changes, gg-scan]
if: ${{ needs.lib-changes.outputs.packages != '[]' }}
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
component: ${{ fromJSON(needs.lib-changes.outputs.packages) }}
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-libs
with:
COMPONENT: ${{ matrix.component }}
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
SONARQUBE_HOST: ${{ secrets.SONARQUBE_HOST }}
SONARQUBE_TOKEN: ${{ secrets.WERUM_SONARQUBE_TOKEN }}
build-core:
needs: [lib-changes, core-changes, gg-scan]
if: ${{ needs.lib-changes.outputs.packages == '[]' && needs.core-changes.outputs.packages != '[]' }}
strategy:
fail-fast: false
matrix:
component: ${{ fromJSON(needs.core-changes.outputs.packages) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-docker
with:
COMPONENT: ${{ matrix.component }}
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
SONARQUBE_HOST: ${{ secrets.SONARQUBE_HOST }}
SONARQUBE_TOKEN: ${{ secrets.WERUM_SONARQUBE_TOKEN }}
- uses: ./.github/actions/generate-report
with:
COMPONENT: ${{ matrix.component }}
build-all-core:
needs: [lib-changes, build-libs]
if: ${{ needs.lib-changes.outputs.packages != '[]' }}
strategy:
fail-fast: false
matrix:
component:
[
compression-worker,
distribution-worker,
dlq-manager,
eviction-management-worker,
execution-worker,
ingestion-filter,
ingestion-trigger,
ingestion-worker,
metadata-catalog-extraction,
metadata-catalog-searchcontroller,
native-api,
data-lifecycle-worker,
prip-frontend,
ddip-frontend,
preparation-worker,
request-parking-lot,
cronbased-trigger,
]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ./.github/actions/build-docker
with:
COMPONENT: ${{ matrix.component }}
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
SONARQUBE_HOST: ${{ secrets.SONARQUBE_HOST }}
SONARQUBE_TOKEN: ${{ secrets.WERUM_SONARQUBE_TOKEN }}
- uses: ./.github/actions/generate-report
with:
COMPONENT: ${{ matrix.component }}
build-s1-simulator:
needs: [lib-changes, core-changes, build-core, build-all-core]
if: ${{ always() && (needs.lib-changes.outputs.packages != '[]' || contains(fromJSON(needs.core-changes.outputs.packages), 'execution-worker')) }}
uses: ./.github/workflows/build-s1-ipf-simulator.yaml
secrets:
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
build-acq-simulator:
needs: [lib-changes, core-changes, build-core, build-all-core]
if: ${{ always() && (needs.lib-changes.outputs.packages != '[]' || contains(fromJSON(needs.core-changes.outputs.packages), 'execution-worker')) }}
uses: ./.github/workflows/build-acqsimulator.yaml
secrets:
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
build-s3-simulator:
needs: [lib-changes, core-changes, build-core, build-all-core]
if: ${{ always() && (needs.lib-changes.outputs.packages != '[]' || contains(fromJSON(needs.core-changes.outputs.packages), 'execution-worker')) }}
uses: ./.github/workflows/build-s3-ipf-simulator.yaml
secrets:
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
GITGUARDIAN_API_KEY: ${{ secrets.GITGUARDIAN_API_KEY }}
build-ipf-containers:
needs: [lib-changes, core-changes, build-core, build-all-core]
if: ${{ always() && contains(github.event.head_commit.message, '#IPF') && (needs.lib-changes.outputs.packages != '[]' || contains(fromJSON(needs.core-changes.outputs.packages), 'execution-worker')) }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ipf:
[
{ image: rs-ipf-s1-aio, dir: docker_s1_ipf_aio },
{ image: rs-ipf-s1-asp, dir: docker_s1_ipf_asp },
{ image: rs-ipf-s1-l1, dir: docker_s1_ipf_l1 },
{ image: rs-ipf-s1-l2, dir: docker_s1_ipf_l2 },
{ image: rs-ipf-s3-acq, dir: docker_s3_ipf_acq },
{ image: rs-ipf-s3-l0, dir: docker_s3_ipf_l0 },
{ image: rs-ipf-s3-mw1, dir: docker_s3_ipf_mw1 },
{ image: rs-ipf-s3-ol1-rac, dir: docker_s3_ipf_ol1_rac },
{ image: rs-ipf-s3-ol1-spc, dir: docker_s3_ipf_ol1_spc },
{ image: rs-ipf-s3-ol1, dir: docker_s3_ipf_ol1 },
{ image: rs-ipf-s3-ol2, dir: docker_s3_ipf_ol2 },
{ image: rs-ipf-s3-pug, dir: docker_s3_ipf_pug },
{ image: rs-ipf-s3-sl1, dir: docker_s3_ipf_sl1 },
{ image: rs-ipf-s3-sl2-frp, dir: docker_s3_ipf_sl2_frp },
{ image: rs-ipf-s3-sl2, dir: docker_s3_ipf_sl2 },
{ image: rs-ipf-s3-sr1, dir: docker_s3_ipf_sr1 },
{ image: rs-ipf-s3-sy2-aod, dir: docker_s3_ipf_sy2_aod },
{ image: rs-ipf-s3-sy2-vgs, dir: docker_s3_ipf_sy2_vgs },
{ image: rs-ipf-s3-sy2, dir: docker_s3_ipf_sy2 },
]
# The delivered IPFs for SM2 are currently too big for the GitHub pipeline, therefore skip these processors.
# If the size is fixed enable them by adding the following lines back to the array above:
# { image: rs-ipf-s3-sm2-hy, dir: docker_s3_ipf_sm2_hy },
# { image: rs-ipf-s3-sm2-li, dir: docker_s3_ipf_sm2_li },
# { image: rs-ipf-s3-sm2-si, dir: docker_s3_ipf_sm2_si },
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF} | cut -d / -f3-)"
id: extract_branch
- uses: ./.github/actions/build-ipf-container
with:
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
IMAGE_NAME: ${{ matrix.ipf.image }}
BUILD_CONTEXT: ./rs-container/${{ matrix.ipf.dir }}
WERUM_ARTIFACTORY_USER: ${{ secrets.WERUM_ARTIFACTORY_USER }}
WERUM_ARTIFACTORY_PASSWORD: ${{ secrets.WERUM_ARTIFACTORY_PASSWORD }}
- uses: ./.github/actions/generate-report
with:
COMPONENT: ${{ matrix.ipf.image }}