Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

release

release #3

Workflow file for this run

# /********************************************************************************
# * Copyright (c) 2022 Contributors to the Eclipse Foundation
# *
# * See the NOTICE file(s) distributed with this work for additional
# * information regarding copyright ownership.
# *
# * This program and the accompanying materials are made available under the
# * terms of the Apache License 2.0 which is available at
# * http://www.apache.org/licenses/LICENSE-2.0
# *
# * SPDX-License-Identifier: Apache-2.0
# ********************************************************************************/
name: release
on:
workflow_dispatch: # input version manually. Overrides push tag
inputs:
tag:
description: "Release version, eg:latest, v0.2.1"
required: true
default: "0.0.0"
push:
tags:
- "v*.*.*"
jobs:
get_version:
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
version: ${{ steps.eval_version.outputs.version }}
steps:
- name: Get tag or user release version
id: eval_version
run: |
GIT_VER="${GITHUB_REF/refs\/tags\//}"
echo "### Detected tag: $GIT_VER"
if [ -n "${{ github.event.inputs.tag }}" ]; then
GIT_VER="${{ github.event.inputs.tag }}"
echo "Forced release version: $GIT_VER"
echo "version=${GIT_VER}" >> $GITHUB_OUTPUT
else
echo "version=${GIT_VER}" >> $GITHUB_OUTPUT
fi
call_seat_service_release:
uses: ./.github/workflows/seat_service_release.yml
call_seat_service_docu_build:
uses: ./.github/workflows/seat_service_docu_build.yml
call_hvac_service_build:
uses: ./.github/workflows/hvac_service.yml
call_mock_service_build:
uses: ./.github/workflows/mock_service.yml
create_release:
runs-on: ubuntu-latest
needs:
[
get_version,
call_seat_service_release,
call_seat_service_docu_build,
call_hvac_service_build,
call_mock_service_build,
]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v3
with:
path: bin/
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
# if: startsWith(github.ref, 'refs/tags/'
with:
draft: true
tag_name: ${{ needs.get_version.outputs.version }}
fail_on_unmatched_files: true
files: |
bin/**
LICENSE
NOTICE.md
release-seat-service-image:
name: "Download and push to ghcr (seat_service)"
runs-on: ubuntu-latest
needs: [get_version, call_seat_service_release]
steps:
- id: repository-name-adjusted
name: Prepare repository name in lower case for docker upload. This supports repository names in mixed case
uses: ASzc/change-string-case-action@v5
with:
string: ${{ github.repository }}
- name: Retrieve saved Docker image
uses: actions/download-artifact@v3
with:
name: oci_vservice-seat.tar
path: ${{github.workspace}}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: "Push image to ghcr"
env:
COMPONENT_NAME: seat_service
COMPONENT_VERSION: ${{ needs.get_version.outputs.version }}
GIT_HUB_REPOSITORY_NAME_LOWER_CASE: ${{ steps.repository-name-adjusted.outputs.lowercase }}
shell: bash
run: |
skopeo copy --all oci-archive:oci_vservice-seat.tar "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"
skopeo inspect --raw "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION" | jq
skopeo inspect "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"
release-hvac-service-image:
name: "Download and push to ghcr (hvac_service)"
runs-on: ubuntu-latest
needs: [get_version, call_hvac_service_build]
steps:
- id: repository-name-adjusted
name: Prepare repository name in lower case for docker upload. This supports repository names in mixed case
uses: ASzc/change-string-case-action@v5
with:
string: ${{ github.repository }}
- name: Retrieve saved Docker image
uses: actions/download-artifact@v3
with:
name: oci_vservice-hvac.tar
path: ${{github.workspace}}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: "Push image to ghcr"
env:
COMPONENT_NAME: hvac_service
COMPONENT_VERSION: ${{ needs.get_version.outputs.version }}
GIT_HUB_REPOSITORY_NAME_LOWER_CASE: ${{ steps.repository-name-adjusted.outputs.lowercase }}
shell: bash
run: |
skopeo copy --all oci-archive:oci_vservice-hvac.tar "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"
skopeo inspect --raw "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION" | jq
skopeo inspect "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"
release-mock-service-image:
name: "Download and push to ghcr (mock_service)"
runs-on: ubuntu-latest
needs: [get_version, call_mock_service_build]
steps:
- id: repository-name-adjusted
name: Prepare repository name in lower case for docker upload. This supports repository names in mixed case
uses: ASzc/change-string-case-action@v5
with:
string: ${{ github.repository }}
- name: Retrieve saved Docker image
uses: actions/download-artifact@v3
with:
name: oci_vservice-mock.tar
path: ${{github.workspace}}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: "Push image to ghcr"
env:
COMPONENT_NAME: mock_service
COMPONENT_VERSION: ${{ needs.get_version.outputs.version }}
GIT_HUB_REPOSITORY_NAME_LOWER_CASE: ${{ steps.repository-name-adjusted.outputs.lowercase }}
shell: bash
run: |
skopeo copy --all oci-archive:oci_vservice-mock.tar "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"
skopeo inspect --raw "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION" | jq
skopeo inspect "docker://ghcr.io/$GIT_HUB_REPOSITORY_NAME_LOWER_CASE/$COMPONENT_NAME:$COMPONENT_VERSION"