Repository navigation
#475 Lineage Maturity (support linking a child partitioning to multiple parents) #1895
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # 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" |