Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: publish
on:
push:
tags:
- v*
workflow_dispatch:


permissions:
packages: write

env:
OCI_URL: ghcr.io/openmcp-project

jobs:
release_tag:
name: Release version
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
ssh-key: ${{ secrets.PUSH_KEY }}
fetch-tags: true
fetch-depth: 0

- name: Read and validate VERSION
id: version
run: |
VERSION=$(cat VERSION)
if [[ ! "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-dev)?$ ]]; then
echo "Invalid version format in VERSION file: $VERSION"
exit 1
fi
echo "New version: $VERSION"
echo "version=$VERSION" >> $GITHUB_ENV
- name: Skip release if version is a dev version
if: contains(env.version, '-dev')
run: |
echo "Skipping development version release: ${{ env.version }}"
echo "SKIP=true" >> $GITHUB_ENV
exit 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Context for Buildx
id: buildx-context
run: |
docker context create builders
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
timeout-minutes: 5
uses: docker/setup-buildx-action@v2
with:
version: latest

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Build the ${{ github.repository }}
run: |
make prepare-release
make build
- name: Build Images
run: |
IMAGE_REGISTRY=ghcr.io/openmcp-project make image-build
- name: setup OCM
uses: open-component-model/ocm-setup-action@main

- name: Create OCM CTF
run: |
ocm add componentversions --create \
--file ctf component-constructor.yaml \
--settings settings.yaml -- VERSION=${{ env.version }}
- name: Push CTF
run: |
ocm transfer ctf --overwrite ./ctf ${{ env.OCI_URL }}
21 changes: 21 additions & 0 deletions component-constructor.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
components:
- name: ${COMPONENT_NAME_PREFIX}/${COMPONENT_NAME}
version: ${VERSION}
provider:
name: ${PROVIDER}
resources:
- name: ${COMPONENT_NAME}-chart
type: helmChart
input:
type: helm
path: ./charts/${COMPONENT_NAME}
repository: charts/${COMPONENT_NAME}

- name: ${COMPONENT_NAME}-image
type: ociImage
input:
type: dockermulti
repository: images/${COMPONENT_NAME}
variants:
- "${COMPONENT_REPO_PREFIX}:${VERSION}-linux-amd64"
- "${COMPONENT_REPO_PREFIX}:${VERSION}-linux-arm64"
4 changes: 4 additions & 0 deletions settings.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
COMPONENT_NAME: control-plane-operator
COMPONENT_NAME_PREFIX: github.com/openmcp-project
PROVIDER: openmcp-project
COMPONENT_REPO_PREFIX: ghcr.io/openmcp-project/control-plane-operator
Loading