From d78cb52d65e0e0b42ae664b5185a337af839e6e0 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Thu, 21 Dec 2023 14:06:59 +0100 Subject: [PATCH 1/4] ci: release --- .github/workflows/release.yaml | 110 +++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..c11e38c --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,110 @@ +# +# Copyright (C) 2023 Red Hat, Inc. +# +# 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. +# +# SPDX-License-Identifier: Apache-2.0 + +name: release + +on: + workflow_dispatch: + inputs: + version: + description: 'Version to release' + required: true + branch: + description: 'Branch to use for the release' + required: true + default: main +env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + +jobs: + + tag: + name: Tagging + runs-on: ubuntu-22.04 + outputs: + githubTag: ${{ steps.TAG_UTIL.outputs.githubTag}} + extVersion: ${{ steps.TAG_UTIL.outputs.extVersion}} + releaseId: ${{ steps.create_release.outputs.id}} + + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.inputs.branch }} + - name: Generate tag utilities + id: TAG_UTIL + run: | + TAG_PATTERN=${{ github.event.inputs.version }} + echo "githubTag=v$TAG_PATTERN" >> ${GITHUB_OUTPUT} + echo "extVersion=$TAG_PATTERN" >> ${GITHUB_OUTPUT} + + - name: tag + run: | + git config --local user.name ${{ github.actor }} + + # Add the new version in package.json file + #sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.extVersion }}\",#g" package.json + #git add package.json + + # commit the changes + #git commit -m "chore: 🥁 tagging ${{ steps.TAG_UTIL.outputs.githubTag }} 🥳" + echo "Tagging with ${{ steps.TAG_UTIL.outputs.githubTag }}" + git tag ${{ steps.TAG_UTIL.outputs.githubTag }} + git push origin ${{ steps.TAG_UTIL.outputs.githubTag }} + - name: Create Release + id: create_release + uses: ncipollo/release-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag: ${{ steps.TAG_UTIL.outputs.githubTag }} + name: ${{ steps.TAG_UTIL.outputs.githubTag }} + draft: true + prerelease: false + + build: + needs: [tag] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: Login to ghcr.io + run: podman login --username ${{ github.repository_owner }} --password ${{ secrets.GITHUB_TOKEN }} ghcr.io + + - name: Build Image + id: build-image + run: | + IMAGE_NAME=ghcr.io/${{ github.repository_owner }}/podman-desktop-image-checker-openshift-ext + ./scripts/build.sh ${IMAGE_NAME} ${{ needs.tag.outputs.extVersion }} + + release: + needs: [tag, build] + name: Release + runs-on: ubuntu-22.04 + steps: + - name: id + run: echo the release id is ${{ needs.tag.outputs.releaseId}} + + - name: Publish release + uses: StuYarrow/publish-release@v1.1.2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + id: ${{ needs.tag.outputs.releaseId}} From dbc5941729bd8711e5610dc9f655fdd43077c149 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Thu, 21 Dec 2023 14:26:41 +0100 Subject: [PATCH 2/4] use podman v4 --- .github/workflows/release.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c11e38c..9085202 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -79,6 +79,26 @@ jobs: needs: [tag] runs-on: ubuntu-latest steps: + - name: Uninstall existing Podman and dependencies + run: | + sudo apt-get -y -q autoremove --purge podman + - name: Install latest podman + run: | + sudo apt-get update -y -qq + sudo mkdir -p /etc/apt/keyrings + curl -fsSL https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/Release.key \ + | gpg --dearmor \ + | sudo tee /etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg > /dev/null + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/devel_kubic_libcontainers_unstable.gpg]\ + https://download.opensuse.org/repositories/devel:kubic:libcontainers:unstable/xUbuntu_$(lsb_release -rs)/ /" \ + | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list > /dev/null + sudo apt-get update -qq + sudo apt-get -qq -y install containernetworking-plugins podman + - run: podman system reset --force + + - run: podman info + - uses: actions/checkout@v4 - uses: actions/setup-node@v3 From 3fcd36891e46b8bd5efffbf5c683133391b72e30 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Thu, 21 Dec 2023 14:38:20 +0100 Subject: [PATCH 3/4] docs: document how to run a new release --- CONTRIBUTING.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..122b8e9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,9 @@ +# Contributing + +## Making a release + +To trigger a job for a new release, you can run the command: + +``` +$ gh workflow run release -f version= -f branch=main +``` From a5cbcd0f588a307f337d08ae252b9c2cb8bddff1 Mon Sep 17 00:00:00 2001 From: Philippe Martin Date: Thu, 21 Dec 2023 14:44:31 +0100 Subject: [PATCH 4/4] docs: document how to install a released Podman Desktop extension --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b12bff5..af9d28f 100644 --- a/README.md +++ b/README.md @@ -95,6 +95,11 @@ go build -o doa[.exe] doa[.exe] analyze -f /your/local/project/path[/Dockerfile_name] ``` +Podman Desktop Extension +======================== + +To install the extension on Podman Desktop, you can go to Resources > Extensions, then "Install extension from the OCI image", using the image name: ` ghcr.io/redhat-developer/podman-desktop-image-checker-openshift-ext:` + Contributing ============ This is an open source project open to anyone. This project welcomes contributions and suggestions!