This repository has been archived by the owner on Sep 2, 2024. It is now read-only.
release #3
This file contains 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 (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" |