Skip to content

#475 Lineage Maturity (support linking a child partitioning to multiple parents) #1895

#475 Lineage Maturity (support linking a child partitioning to multiple parents)

#475 Lineage Maturity (support linking a child partitioning to multiple parents) #1895

Workflow file for this run

#
# Copyright 2021 ABSA Group Limited
#
# 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 All Modules
on:
pull_request:
branches:
- '**'
types: [ opened, synchronize, reopened ]
jobs:
test-agent-reader-and-model:
name: ${{ matrix.name }}
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- name: Test Agent, Reader and Model (Spark 3, Java 8)
java-version: '8'
test-command: testAgentReaderModelSpark3
doc-command: docAgentReaderModelSpark3
- name: Test Agent, Reader and Model (Spark 3, Java 11)
java-version: '11'
test-command: testAgentReaderModelSpark3
doc-command: docAgentReaderModelSpark3
- name: Test Agent, Reader and Model (Spark 4, Java 17)
java-version: '17'
test-command: testAgentReaderModelSpark4
doc-command: docAgentReaderModelSpark4
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
fetch-depth: 1
persist-credentials: false
- uses: coursier/cache-action@057d08c2f9a2c4e7a4d33df3aae657b7db88b8cc
- name: Setup JDK ${{ matrix.java-version }}
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
with:
distribution: temurin
java-version: ${{ matrix.java-version }}
- name: Build and run tests
run: sbt ${{ matrix.test-command }}
- name: Generate documentation
run: sbt ${{ matrix.doc-command }}
test-database-and-server:
name: Test Database and Server (Java 11)
runs-on: ubuntu-22.04
services:
postgres:
image: postgres:15
env:
POSTGRES_PASSWORD: changeme
POSTGRES_DB: atum_db
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
fetch-depth: 1
persist-credentials: false
- uses: coursier/cache-action@057d08c2f9a2c4e7a4d33df3aae657b7db88b8cc
- name: Setup JDK 11
uses: actions/setup-java@b843ebf9b913146b38da2eaa7aeddf76074ae1ad # v6.1.0
with:
distribution: temurin
java-version: '11'
- name: Build and run unit tests
run: sbt "project database" test "project server" test
- name: Prepare testing database
run: sbt flywayMigrate
- name: Build and run integration tests
run: sbt "project database" testIT "project server" testIT
- name: Generate documentation
run: sbt "project database" doc "project server" doc
sbom-and-aquasec-manifest:
name: SBOM and Aquasec Manifest
runs-on: ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
fetch-depth: 1
persist-credentials: false
- name: Generate filesystem SBOM (Trivy)
# Verifiable CycloneDX SBOM of the repository and its resolved dependencies. Trivy runs in local mode only:
# it writes a file and does NOT upload or register anything in AquaSec. Kept as a CI artifact for audit.
# Complements - does not replace - the AquaSec compliance step below.
uses: aquasecurity/trivy-action@ed142fd0673e97e23eac54620cfb913e5ce36c25
with:
scan-type: fs
scan-ref: .
format: cyclonedx
output: atum-service-sbom.cyclonedx.json
- name: Upload SBOM artifact
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9
with:
name: atum-service-sbom
path: atum-service-sbom.cyclonedx.json
if-no-files-found: error
- name: Aquasec Manifest Generation
# Mandated org compliance step: reports a build manifest to AquaSec's supply-chain platform. This registers
# data upstream in AquaSec, but doesn't produce a local SBOM - the Trivy step above covers the verifiable SBOM.
run: |
export BILLY_SERVER=https://billy.eu-1.codesec.aquasec.com
curl -sLo install.sh download.codesec.aquasec.com/billy/install.sh
curl -sLo install.sh.checksum https://github.com/argonsecurity/releases/releases/latest/download/install.sh.checksum
if ! cat install.sh.checksum | sha256sum --check; then
echo "install.sh checksum failed"
exit 1
fi
BINDIR="." sh install.sh
rm install.sh install.sh.checksum
./billy generate \
--access-token "${{ secrets.GITHUB_TOKEN }}" \
--aqua-key "${{ secrets.AQUA_KEY }}" \
--aqua-secret "${{ secrets.AQUA_SECRET }}" \
--cspm-url https://eu-1.api.cloudsploit.com \
--artifact-path "${{ github.workspace }}/server/Dockerfile"