Skip to content

Commit

Permalink
Add workflow files
Browse files Browse the repository at this point in the history
Signed-off-by: Mandy Chessell <mandy.e.chessell@gmail.com>
  • Loading branch information
mandy-chessell committed Jun 10, 2024
1 parent f2ab23d commit 6d6dc97
Show file tree
Hide file tree
Showing 44 changed files with 386 additions and 47 deletions.
56 changes: 56 additions & 0 deletions .github/workflows/codeql-v5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the ODPi Egeria project.
#
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
---
name: "CodeQL Analysis v5"

on:
push:
branches: [main, egeria-release-5*]
pull_request:
# The branches below must be a subset of the branches above
branches: [main, egeria-release-5*]
workflow_dispatch:

jobs:
analyze:
if: ${{ github.repository == 'odpi/egeria'}}
name: "CodeQL Build v5"
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

steps:
- name: Checkout repository
uses: actions/checkout@v4.1.0
- uses: gradle/wrapper-validation-action@v2
- name: Setup Java JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3.25.7
with:
languages: java
queries: security-and-quality
ram: 4096
- name: Build
uses: gradle/gradle-build-action@v3
with:
# codeQL requires a full before/after build to compare results. Caching can result in action failing
#cache-read-only: true
cache-disabled: true
arguments: -x javadoc -x test build -PskipOpenTypesFVT
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3.25.7
with:
ram: 4096
145 changes: 145 additions & 0 deletions .github/workflows/merge-v5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the ODPi Egeria project.
---
name: "Merge v5"

# Trigger after code is merged. only on main repo
# - does not run on modification (may be just text)

on:
push:
branches: [main, egeria-release-5*]

permissions:
contents: read

jobs:
build:
permissions:
# for gh-pages
contents: write
runs-on: ubuntu-latest
name: "Merge v5"
if: startsWith(github.repository,'odpi/')
steps:
- uses: actions/checkout@v4.1.0
name: Checkout source
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
# Build first - lombok & other pre-processing may be needed. safer...
- name: build and publish to maven central
if: ${{ github.ref == 'refs/heads/main'}}
uses: gradle/gradle-build-action@v3
with:
cache-read-only: false
arguments: build publish
# Import secrets needed for code signing and distribution
env:
OSSRH_GPG_KEYID: ${{ secrets.OSSRH_GPG_KEYID }}
OSSRH_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
OSSRH_GPG_PRIVATE_KEY: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_mavenRepoPass: ${{ secrets.OSSRH_TOKEN }}
ORG_GRADLE_PROJECT_mavenRepoUser: ${{ secrets.OSSRH_USERNAME }}
# In other cases just build but don't publish
- name: build (no publish to maven central)
if: ${{ github.ref != 'refs/heads/main'}}
uses: gradle/gradle-build-action@v3
with:
cache-read-only: false
arguments: build
# Now aggregate javadoc - main only
- name: build
if: ${{ github.ref == 'refs/heads/main'}}
uses: gradle/gradle-build-action@v3
with:
cache-read-only: false
arguments: aggregateJavadoc
- name: publish aggregate javadoc
if: ${{ github.ref == 'refs/heads/main'}}
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: build/docs/javadoc
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to container registry (Quay.io)
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: ${{ secrets.QUAY_IO_ACCESS_TOKEN }}
- name: Login to container registry (Docker Hub)
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
# QEMU is needed for ARM64 build for egeria-configure
# egeria-configure needs to install utilities
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set Release version env variable
run: |
echo "VERSION=$(./gradlew properties --no-daemon --console=plain -q | grep '^version:' | awk '{printf $2}')" >> $GITHUB_ENV
# Publish container images(egeria) to quay.io and docker.io
- name: Copy the distribution content to be used in docker copy command
run: |
cp -f release.application.properties ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/platform/application.properties
cp -r ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/opt/sample-configs/*-* ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/platform/data
- name: Build and push(egeria) to quay.io and docker.io (tag latest only for main!)
if: ${{ github.ref == 'refs/heads/main'}}
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria:${{ env.VERSION }}, odpi/egeria:latest, quay.io/odpi/egeria:${{ env.VERSION }}, quay.io/odpi/egeria:latest
context: ./open-metadata-deployment/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz
platforms: linux/amd64,linux/arm64
- name: Build and push(egeria) to quay.io and docker.io (no tag latest)
if: ${{ github.ref != 'refs/heads/main'}}
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria:${{ env.VERSION }}, quay.io/odpi/egeria:${{ env.VERSION }}
context: ./open-metadata-deployment/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz
platforms: linux/amd64,linux/arm64
# Publish container images(egeria-configure) to quay.io and docker.io
- name: Build and push(egeria-configure) to quay.io and docker.io (tag latest)
if: ${{ github.ref == 'refs/heads/main'}}
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria-configure:${{ env.VERSION }}, odpi/egeria-configure:latest, quay.io/odpi/egeria-configure:${{ env.VERSION }}, quay.io/odpi/egeria-configure:latest
context: ./open-metadata-resources/open-metadata-deployment/docker/configure
platforms: linux/amd64,linux/arm64
# --
# Publish container images(egeria-configure) to quay.io and docker.io
- name: Build and push(egeria-configure) to quay.io and docker.io (no tag latest)
if: ${{ github.ref != 'refs/heads/main'}}
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria-configure:${{ env.VERSION }}, quay.io/odpi/egeria-configure:${{ env.VERSION }}
context: ./open-metadata-resources/open-metadata-deployment/docker/configure
platforms: linux/amd64,linux/arm64
# --
- name: Upload Log of any dependency failures
uses: actions/upload-artifact@v4.3.1
with:
name: Dependency Analysis Report (on failure)
path: build/reports/dependency-analysis/build-health-report.txt
if-no-files-found: ignore
# Mostly for verification - not published to the release itself for now
- name: Upload assemblies
uses: actions/upload-artifact@v4.3.1
with:
name: Assemblies
path: open-metadata-distribution/omag-server-platform/build/distributions/*.gz
- name: Upload Test coverage report
uses: actions/upload-artifact@v4.3.1
with:
name: Jacoco Coverage Report
path: build/reports/jacoco/codeCoverageReport
if-no-files-found: ignore
44 changes: 44 additions & 0 deletions .github/workflows/pr-v5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the ODPi Egeria project.
---
name: "Verify PR v5"

on:
pull_request:
branches: [main, egeria-release-5*]

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
name: "Verify PR v5"
if: startsWith(github.repository,'odpi/')
steps:
- uses: actions/checkout@v4.1.0
- uses: gradle/wrapper-validation-action@v2
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: Build with Gradle
uses: gradle/gradle-build-action@v3
with:
# Only cache for main build
cache-read-only: true
arguments: |
build
--scan
- name: Upload Test coverage report
uses: actions/upload-artifact@v4.3.1
with:
name: Jacoco Coverage Report
path: build/reports/jacoco/codeCoverageReport
- name: Upload Log of any dependency failures
uses: actions/upload-artifact@v4.3.1
with:
name: Dependency Analysis Report (on failure)
path: build/reports/dependency-analysis/build-health-report.txt
if-no-files-found: ignore
94 changes: 94 additions & 0 deletions .github/workflows/release-v5.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the ODPi Egeria project.
---
name: "Release v5"

# Trigger when a Release is created in github
# - does not run on modification (may be just text)

on:
# No checks for branch or repo - assuming release creation is manual, controlled
release:
types:
- created
branches: [main, egeria-release-5*]

workflow_dispatch:

permissions:
contents: read

jobs:
build:
runs-on: ubuntu-latest
name: "Release"
if: startsWith(github.repository,'odpi/')
steps:
- uses: actions/checkout@v4.1.0
name: Checkout source
- uses: gradle/wrapper-validation-action@v2
# Prep for docker builds
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to container registry (Quay.io)
uses: docker/login-action@v3
with:
registry: quay.io
username: ${{ secrets.QUAY_IO_USERNAME }}
password: ${{ secrets.QUAY_IO_ACCESS_TOKEN }}
- name: Login to container registry (docker.io)
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
- name: build and publish to maven central
uses: gradle/gradle-build-action@v3
with:
cache-read-only: false
arguments: build publish -Dorg.gradle.parallel=false -Dorg.gradle.caching=false
# Import secrets needed for code signing and distribution
env:
OSSRH_GPG_KEYID: ${{ secrets.OSSRH_GPG_KEYID }}
OSSRH_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_PASSPHRASE }}
OSSRH_GPG_PRIVATE_KEY: ${{ secrets.OSSRH_GPG_PRIVATE_KEY }}
ORG_GRADLE_PROJECT_mavenRepoUrl: https://oss.sonatype.org/service/local/staging/deploy/maven2
ORG_GRADLE_PROJECT_mavenRepoPass: ${{ secrets.OSSRH_TOKEN }}
ORG_GRADLE_PROJECT_mavenRepoUser: ${{ secrets.OSSRH_USERNAME }}
# QEMU is needed for ARM64 build for egeria-configure
# egeria-configure needs to install utilities
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set Release version env variable
run: |
echo "VERSION=$(./gradlew properties --no-daemon --console=plain -q | grep '^version:' | awk '{printf $2}')" >> $GITHUB_ENV
# Publish container images(egeria) to quay.io and docker.io
- name: Copy the distribution content to be used in docker copy command
run: |
cp -f release.application.properties ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/platform/application.properties
cp -r ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/opt/sample-configs/*-* ./open-metadata-distribution/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz/assembly/platform/data
- name: Build and push(egeria) to quay.io and docker.io
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria:${{ env.VERSION }}, odpi/egeria:stable, quay.io/odpi/egeria:${{ env.VERSION }}, quay.io/odpi/egeria:stable
context: ./open-metadata-deployment/omag-server-platform/build/unpacked/egeria-platform-${{ env.VERSION }}-distribution.tar.gz
platforms: linux/amd64,linux/arm64
# Publish container images(egeria-configure) to quay.io and docker.io
- name: Build and push(egeria-configure) to quay.io and docker.io
uses: docker/build-push-action@v5
with:
push: true
tags: odpi/egeria-configure:${{ env.VERSION }}, odpi/egeria-configure:stable, quay.io/odpi/egeria-configure:${{ env.VERSION }}, quay.io/odpi/egeria-configure:stable
context: ./open-metadata-resources/open-metadata-deployment/docker/configure
platforms: linux/amd64,linux/arm64
# Mostly for verification - not published to the release itself for now
- name: Upload assemblies
uses: actions/upload-artifact@v4.3.1
with:
name: Assemblies
path: open-metadata-distribution/omag-server-platform/build/distributions/*.gz
2 changes: 1 addition & 1 deletion CoreContentPackGUIDMap.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ plugins {
*/
allprojects {
group = 'org.odpi.egeria'
version = '4.4-SNAPSHOT'
version = '5.0'

// Signing/publish used in parent & child projects
apply plugin: 'maven-publish'
Expand Down
2 changes: 1 addition & 1 deletion content-packs/CocoBusinessSystemsArchive.omarchive

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoClinicalTrialsTemplatesArchive.omarchive

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoComboArchive.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoComboArchive.omarchive

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoGovernanceEngineDefinitionsArchive.json

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoGovernanceProgramArchive.omarchive

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoOrganizationArchive.omarchive

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion content-packs/CocoSustainabilityArchive.omarchive

Large diffs are not rendered by default.

Loading

0 comments on commit 6d6dc97

Please sign in to comment.