From 8c4095e406ab6d17593d7247427afa4912d22c11 Mon Sep 17 00:00:00 2001 From: odockal <19164299+odockal@users.noreply.github.com> Date: Tue, 17 Dec 2024 02:25:26 +0000 Subject: [PATCH] chore: tag v1.16.0-202412170225-c84573291f0 --- .github/workflows/argos.yaml | 76 --- .github/workflows/daily-testing-build.yaml | 161 ------ .github/workflows/downloads-count.yaml | 87 ---- .github/workflows/e2e-main.yaml | 206 -------- .github/workflows/next-build.yaml | 225 -------- .github/workflows/pr-check-vale.yaml | 41 -- .github/workflows/pr-check.yaml | 485 ------------------ .github/workflows/publish-flathub.yaml | 132 ----- .github/workflows/publish-to-brew.yaml | 59 --- .github/workflows/publish-to-chocolatey.yaml | 111 ---- .github/workflows/publish-to-podman_io.yaml | 96 ---- .github/workflows/publish-to-winget.yaml | 70 --- .../workflows/publish-website-pr-netlify.yaml | 67 --- .github/workflows/release-notes.yaml | 65 --- .github/workflows/release.yaml | 297 ----------- .github/workflows/stale.yaml | 65 --- .github/workflows/website-next.yaml | 73 --- extensions/compose/package.json | 2 +- extensions/docker/package.json | 2 +- extensions/kind/package.json | 2 +- extensions/kube-context/package.json | 2 +- extensions/kubectl-cli/package.json | 2 +- extensions/lima/package.json | 2 +- extensions/registries/package.json | 2 +- package.json | 4 +- 25 files changed, 9 insertions(+), 2325 deletions(-) delete mode 100644 .github/workflows/argos.yaml delete mode 100644 .github/workflows/daily-testing-build.yaml delete mode 100644 .github/workflows/downloads-count.yaml delete mode 100644 .github/workflows/e2e-main.yaml delete mode 100644 .github/workflows/next-build.yaml delete mode 100644 .github/workflows/pr-check-vale.yaml delete mode 100644 .github/workflows/pr-check.yaml delete mode 100644 .github/workflows/publish-flathub.yaml delete mode 100644 .github/workflows/publish-to-brew.yaml delete mode 100644 .github/workflows/publish-to-chocolatey.yaml delete mode 100644 .github/workflows/publish-to-podman_io.yaml delete mode 100644 .github/workflows/publish-to-winget.yaml delete mode 100644 .github/workflows/publish-website-pr-netlify.yaml delete mode 100644 .github/workflows/release-notes.yaml delete mode 100644 .github/workflows/release.yaml delete mode 100644 .github/workflows/stale.yaml delete mode 100644 .github/workflows/website-next.yaml diff --git a/.github/workflows/argos.yaml b/.github/workflows/argos.yaml deleted file mode 100644 index f1a4f496a..000000000 --- a/.github/workflows/argos.yaml +++ /dev/null @@ -1,76 +0,0 @@ -# -# Copyright (C) 2023-2024 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: Argos CI Screenshots - -on: - workflow_dispatch: - push: - branches: - - main - paths: - - 'package.json' - - 'pnpm-lock.yaml' - - 'storybook/**' - - 'website/**' - - 'website-argos/**' - pull_request: - branches: - - main - paths: - - '.github/workflows/argos.yaml' - - 'package.json' - - 'pnpm-lock.yaml' - - 'storybook/**' - - 'website/**' - - 'website-argos/**' - -jobs: - take-screenshots: - name: take screenshots - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run website - run: pnpm website:build - - - name: Install Playwright browsers - working-directory: website-argos - run: pnpm playwright install --with-deps chromium - - - name: Take screenshots with Playwright - run: pnpm website:screenshots - - - name: Upload screenshots to Argos - continue-on-error: true - working-directory: website-argos - run: pnpm upload - env: - ARGOS_TOKEN: ${{ secrets.ARGOS_TOKEN }} diff --git a/.github/workflows/daily-testing-build.yaml b/.github/workflows/daily-testing-build.yaml deleted file mode 100644 index 9a4b772ea..000000000 --- a/.github/workflows/daily-testing-build.yaml +++ /dev/null @@ -1,161 +0,0 @@ -# -# Copyright (C) 2024 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: Daily testing build -run-name: Testing build of Podman Desktop from Main branch - -on: - workflow_dispatch: - schedule: - - cron: '0 1 * * *' - -env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - DEBUG: electron-builder - -jobs: - tag: - name: Tagging - runs-on: ubuntu-24.04 - outputs: - githubTag: ${{ steps.TAG_UTIL.outputs.githubTag }} - desktopVersion: ${{ steps.TAG_UTIL.outputs.desktopVersion }} - releaseId: ${{ steps.create_release.outputs.id }} - - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - fetch-depth: 0 - - - name: Generate tag utilities - id: TAG_UTIL - run: | - CURRENT_DAY=$(date +'%Y%m%d') - SHORT_SHA1=$(git rev-parse --short HEAD) - # grab the version from the package.json - PODMAN_DEKSTOP_VERSION=$(jq -r '.version' package.json) - # remove the -next from the version - STRIPPED_VERSION=${PODMAN_DEKSTOP_VERSION%-next} - TAG_PATTERN=${STRIPPED_VERSION}-$(date +'%Y%m%d%H%M')-${SHORT_SHA1} - echo "githubTag=v$TAG_PATTERN" >> ${GITHUB_OUTPUT} - echo "desktopVersion=$TAG_PATTERN" >> ${GITHUB_OUTPUT} - # check for tag existence - exit the workflow - echo "Checking if tag exists: $(git rev-parse -q --verify "$githubTag")" - if [ git rev-parse -q --verify "$githubTag" ]; then - echo "Tag '$githubTag' exists, skipping..." - exit 1; - else - echo "Tag '$githubTag' does not exist yet, continue" - fi - - - name: Create a Tag, commit and push to testing-prereleases - run: | - # quite heavy solution, we might only consider crating a tag, but not actually pushing whole state of the repo - echo "Setting github.actor: ${{ github.actor }} and id: ${{ github.actor_id }}" - git config --local user.name ${{ github.actor }} - git config --local user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.desktopVersion }}\",#g" package.json - find extensions/* -maxdepth 2 -name "package.json" | xargs -I {} sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.desktopVersion }}\",#g" {} - # change the repository field to be the prerelease repository in package.json file - sed -i "s#\"repository\":\ \"\(.*\)\",#\"repository\":\ \"https://github.com/podman-desktop/testing-prereleases\",#g" package.json - cat package.json - git add package.json extensions/*/package.json - # get rid of .github/workflows - requires additional permissions - rm -rf .github/workflows/* - git add .github/ - git commit -m "chore: tag ${{ steps.TAG_UTIL.outputs.githubTag }}" - echo "Tagging with ${{ steps.TAG_UTIL.outputs.githubTag }}" - git tag ${{ steps.TAG_UTIL.outputs.githubTag }} - # push tag to the prereleases repository - git remote add prereleases https://github.com/podman-desktop/testing-prereleases - git push prereleases ${{ steps.TAG_UTIL.outputs.githubTag }} - - - name: Create Release - id: create_release - uses: ncipollo/release-action@v1 - with: - tag: ${{ steps.TAG_UTIL.outputs.githubTag }} - name: ${{ steps.TAG_UTIL.outputs.githubTag }} - draft: true - prerelease: true - owner: podman-desktop - repo: testing-prereleases - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - build: - name: Build / ${{ matrix.os }} - needs: tag - runs-on: ${{ matrix.os }} - env: - ELECTRON_ENABLE_INSPECT: true - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-24.04, windows-2022, macos-14] - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - repository: podman-desktop/testing-prereleases - ref: ${{ needs.tag.outputs.githubTag }} - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run Build on Ubuntu - if: ${{ matrix.os == 'ubuntu-24.04' }} - timeout-minutes: 40 - run: pnpm compile:next --linux tar.gz - - - name: Run Build on Mac OS - if: startsWith(matrix.os, 'macos') - timeout-minutes: 40 - run: pnpm compile:next --mac dmg - - - name: Run Build on Windows - if: startsWith(matrix.os, 'windows') - timeout-minutes: 40 - run: pnpm compile:next --win portable - - release: - needs: [tag, build] - name: Release - runs-on: ubuntu-24.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.PODMAN_DESKTOP_BOT_TOKEN }} - with: - id: ${{ needs.tag.outputs.releaseId }} - repo: testing-prereleases - owner: podman-desktop diff --git a/.github/workflows/downloads-count.yaml b/.github/workflows/downloads-count.yaml deleted file mode 100644 index 5c6742859..000000000 --- a/.github/workflows/downloads-count.yaml +++ /dev/null @@ -1,87 +0,0 @@ -# -# 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 - -# Grab downloads - -name: Downloads Count - -on: - schedule: - - cron: '0 0 * * *' - -jobs: - - get-all-releases-count: - runs-on: ubuntu-24.04 - - steps: - - uses: actions/github-script@v7 - id: process-downloads - with: - script: | - const resp = await github.paginate('GET /repos/{owner}/{repo}/releases{?per_page,page}', { - owner: 'containers', - repo: 'podman-desktop', - per_page: 100 - }, (response) => response.data.map(({ tag_name, assets }) => ({ tag_name, assets }))); - - const releases = resp; - - // Keep only tag_name and asset.name and asset.download_count from releases - releases.forEach((release) => { release.assets = release.assets.map(({ name, download_count }) => ({ name, download_count })) }) - - let totalMac = 0; - let totalWin = 0; - let totalLinux = 0; - - // count the total number of downloads for each release for mac,windows,linux assests - releases.forEach((release) => { - release.assets = release.assets.filter((asset) => { - if (asset.name.endsWith(".dmg") || (asset.name.endsWith("arm64.zip") || asset.name.endsWith("x64.zip") || asset.name.endsWith("universal.zip")) ){ - totalMac += asset.download_count; - } else if (asset.name.endsWith(".exe")){ - totalWin += asset.download_count; - } else if (asset.name.endsWith(".tar.gz") || asset.name.endsWith(".flatpak")){ - totalLinux+=asset.download_count; - } - }) - }) - - let totalDownloads = totalMac + totalWin + totalLinux; - - // Export results as environment variables - core.exportVariable('totalDownloads', totalDownloads); - core.exportVariable('totalMac', totalMac); - core.exportVariable('totalWin', totalWin); - core.exportVariable('totalLinux', totalLinux); - - - name: send-event-4 - run: | - curl https://api.segment.io/v1/track \ - -X POST \ - -H 'Content-Type: application/json' \ - -d '{ - "userId": "gh-action", - "event": "download-count", - "properties": { - "mac": "${{ env.totalMac }}", - "windows": "${{ env.totalWin }}", - "linux": "${{ env.totalLinux }}", - "total": "${{ env.totalDownloads }}" - } - }' \ - -u ${{ secrets.SEGMENT_WRITE_KEY }} diff --git a/.github/workflows/e2e-main.yaml b/.github/workflows/e2e-main.yaml deleted file mode 100644 index 25ecb2712..000000000 --- a/.github/workflows/e2e-main.yaml +++ /dev/null @@ -1,206 +0,0 @@ -# -# Copyright (C) 2023-2024 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: e2e-tests-main - -on: - push: - branches: [main] - - workflow_dispatch: - inputs: - organization: - default: 'containers' - description: 'Organization of the Podman Desktop repository' - type: string - required: true - repositoryName: - default: 'podman-desktop' - description: 'Podman Desktop repository name' - type: string - required: true - branch: - default: 'main' - description: 'Podman Desktop repo branch' - type: string - required: true - -jobs: - e2e-tests: - name: Run All E2E tests - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - with: - repository: ${{ github.event.inputs.organization }}/${{ github.event.inputs.repositoryName }} - ref: ${{ github.event.inputs.branch }} - if: github.event_name == 'workflow_dispatch' - - - uses: actions/checkout@v4 - if: github.event_name == 'push' - - - name: Update podman - run: | - echo "ubuntu version from kubic repository to install podman we need (v5)" - ubuntu_version='23.10' - echo "Add unstable kubic repo into list of available sources and get the repo key" - sudo sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list" - curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add - - echo "install necessary dependencies for criu package which is not part of ${ubuntu_version}" - sudo apt-get install -qq libprotobuf32t64 python3-protobuf libnet1 - echo "install criu manually from static location" - curl -sLO http://cz.archive.ubuntu.com/ubuntu/pool/universe/c/criu/criu_3.16.1-2_amd64.deb && sudo dpkg -i criu_3.16.1-2_amd64.deb - echo "Updating all dependencies..." - sudo apt-get update -qq - echo "installing/update podman package..." - sudo apt-get -qq -y install podman || { echo "Start fallback steps for podman nightly installation from a static mirror" && \ - sudo sh -c "echo 'deb http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list" && \ - curl -L "http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add - && \ - sudo apt-get update && \ - sudo apt-get -y install podman; } - podman version - - - name: Revert unprivileged user namespace restrictions in Ubuntu 24.04 - run: | - # allow unprivileged user namespace - sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 - - - name: Set cgroup_manager to 'cgroupfs' instead of systemd - run: | - mkdir -p ~/.config/containers - cat <> ~/.config/containers/containers.conf - [engine] - cgroup_manager="cgroupfs" - EOT - podman info - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run E2E tests in Production Mode - env: - PODMANDESKTOP_CI_BOT_TOKEN: ${{ secrets.PODMANDESKTOP_CI_BOT_TOKEN }} - TEST_PODMAN_MACHINE: 'true' - SKIP_KIND_INSTALL: 'true' - ELECTRON_ENABLE_INSPECT: true - run: | - echo "Compiling the Podman Desktop in production mode" - pnpm compile:current --linux dir - path=$(realpath ./dist/linux-unpacked/podman-desktop) - echo "Podman Desktop built binary: $path" - export PODMAN_DESKTOP_BINARY_PATH=$path - pnpm test:e2e - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v5 - if: always() # always run even if the previous step fails - with: - fail_on_failure: true - include_passed: true - detailed_summary: true - annotate_only: true - require_tests: true - report_paths: '**/*results.xml' - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: e2e-tests - path: | - ./tests/**/output/ - !./tests/**/traces/raw - - win-update-e2e-test: - name: win update e2e tests - runs-on: windows-2022 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - repository: ${{ github.event.inputs.organization }}/${{ github.event.inputs.repositoryName }} - ref: ${{ github.event.inputs.branch }} - if: github.event_name == 'workflow_dispatch' - - - uses: actions/checkout@v4 - if: github.event_name == 'push' - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Execute PNPM - run: pnpm install --frozen-lockfile - - - name: Adjust/Downgrade local podman desktop version Windows - run: | - $version="1.0.0" - jq --arg version "$version" '.version = $version' package.json | Out-File -FilePath package.json_tmp - Move-Item -Path package.json_tmp -Destination package.json -Force - - - name: Build Podman Desktop locally with electron updater included - env: - ELECTRON_ENABLE_INSPECT: true - run: | - pnpm compile:current --win nsis - $path=('./dist/win-unpacked/Podman Desktop.exe' | resolve-path).ProviderPath - echo $path - echo ("PODMAN_DESKTOP_BINARY=" + $path) >> $env:GITHUB_ENV - - - name: Run E2E Update test - run: | - echo "${{ env.PODMAN_DESKTOP_BINARY }}" - pnpm test:e2e:update:run - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v5 - if: always() # always run even if the previous step fails - with: - fail_on_failure: true - include_passed: true - detailed_summary: true - annotate_only: true - require_tests: true - report_paths: '**/*results.xml' - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: update-e2e-test - path: | - ./tests/**/output/ - !./tests/**/traces/raw diff --git a/.github/workflows/next-build.yaml b/.github/workflows/next-build.yaml deleted file mode 100644 index 32f6eabc9..000000000 --- a/.github/workflows/next-build.yaml +++ /dev/null @@ -1,225 +0,0 @@ -# -# Copyright (C) 2022-2024 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: next build - -on: - workflow_dispatch: - push: - branches: - - main - -env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - DEBUG: electron-builder - -jobs: - - tag: - name: Tagging - runs-on: ubuntu-24.04 - outputs: - githubTag: ${{ steps.TAG_UTIL.outputs.githubTag}} - desktopVersion: ${{ steps.TAG_UTIL.outputs.desktopVersion}} - releaseId: ${{ steps.create_release.outputs.id}} - - steps: - - uses: actions/checkout@v4 - with: - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - fetch-depth: 0 - - name: Generate tag utilities - id: TAG_UTIL - run: | - CURRENT_DAY=$(date +'%Y%m%d') - SHORT_SHA1=$(git rev-parse --short HEAD) - # grab the version from the package.json - PODMAN_DEKSTOP_VERSION=$(jq -r '.version' package.json) - # remove the -next from the version - STRIPPED_VERSION=${PODMAN_DEKSTOP_VERSION%-next} - TAG_PATTERN=${STRIPPED_VERSION}-$(date +'%Y%m%d%H%M')-${SHORT_SHA1} - echo "githubTag=v$TAG_PATTERN" >> ${GITHUB_OUTPUT} - echo "desktopVersion=$TAG_PATTERN" >> ${GITHUB_OUTPUT} - - name: tag - run: | - git config --local user.name ${{ github.actor }} - git config --local user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.desktopVersion }}\",#g" package.json - find extensions/* -maxdepth 2 -name "package.json" | xargs -I {} sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.desktopVersion }}\",#g" {} - # change the repository field to be the prerelease repository in package.json file - sed -i "s#\"repository\":\ \"\(.*\)\",#\"repository\":\ \"https://github.com/podman-desktop/podman-desktop-prereleases\",#g" package.json - cat package.json - git add package.json extensions/*/package.json - git commit -m "chore: tag ${{ steps.TAG_UTIL.outputs.githubTag }}" - echo "Tagging with ${{ steps.TAG_UTIL.outputs.githubTag }}" - git tag ${{ steps.TAG_UTIL.outputs.githubTag }} - # push tag to the prereleases repository - git remote add prereleases https://github.com/podman-desktop/podman-desktop-prereleases - git push prereleases ${{ steps.TAG_UTIL.outputs.githubTag }} - - - name: Create Release - id: create_release - uses: ncipollo/release-action@v1 - with: - tag: ${{ steps.TAG_UTIL.outputs.githubTag }} - name: ${{ steps.TAG_UTIL.outputs.githubTag }} - draft: true - prerelease: true - owner: containers - repo: podman-desktop-prereleases - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - build: - name: Build / ${{ matrix.os }} - needs: tag - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [windows-2022, ubuntu-24.04, macos-14] - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - repository: podman-desktop/podman-desktop-prereleases - ref: ${{ needs.tag.outputs.githubTag}} - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - - name: setup telemetry key for production - run: | - sed -i -r -e "s/SEGMENT_KEY = '.*'/SEGMENT_KEY = '${{ secrets.SEGMENT_WRITE_KEY }}'/" packages/main/src/plugin/telemetry/telemetry.ts - - - name: Execute pnpm - run: pnpm install - - - name: Install flatpak on Linux - if: ${{ matrix.os=='ubuntu-24.04' }} - run: | - sudo apt-get update - sudo apt-get install flatpak -y - sudo apt-get install flatpak-builder -y - sudo apt-get install elfutils -y - flatpak remote-add --if-not-exists flathub --user https://flathub.org/repo/flathub.flatpakrepo - flatpak install flathub --user -y org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08 - - - name: Set macOS environment variables - if: startsWith(matrix.os, 'macos') - run: | - echo "CSC_LINK=${{secrets.CSC_LINK}}" >> $GITHUB_ENV - echo "CSC_KEY_PASSWORD=${{secrets.CSC_KEY_PASSWORD}}" >> $GITHUB_ENV - echo "APPLE_ID=${{secrets.APPLE_ID}}" >> $GITHUB_ENV - echo "APPLE_APP_SPECIFIC_PASSWORD=${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}" >> $GITHUB_ENV - echo "APPLE_TEAM_ID=${{secrets.APPLE_TEAM_ID}}" >> $GITHUB_ENV - - - name: Install Azure SignTool on Windows - if: startsWith(matrix.os, 'windows') - run: | - dotnet tool install --global AzureSignTool --version 3.0.0 - echo "AZURE_KEY_VAULT_CERTIFICATE=${{secrets.AZURE_KEY_VAULT_CERTIFICATE}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_CLIENT_ID=${{secrets.AZURE_KEY_VAULT_CLIENT_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_SECRET=${{secrets.AZURE_KEY_VAULT_SECRET}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_TENANT_ID=${{secrets.AZURE_KEY_VAULT_TENANT_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_URL=${{secrets.AZURE_KEY_VAULT_URL}}" | Out-File -FilePath $env:GITHUB_ENV -Append - - - name: Run Build - timeout-minutes: 40 - run: pnpm compile:next - env: - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - release: - needs: [tag, build] - name: Release - runs-on: ubuntu-24.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.PODMAN_DESKTOP_BOT_TOKEN }} - with: - id: ${{ needs.tag.outputs.releaseId}} - repo: podman-desktop-prereleases - owner: podman-desktop - - publish: - needs: [tag, release] - name: Publish - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Set-up npmjs auth token - run: printf "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}\n" >> ~/.npmrc - - - name: Publish API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/extension-api/package.json - cd packages/extension-api && pnpm publish --tag next --no-git-checks --access public - - - name: Publish Webview API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/webview-api/package.json - cd packages/webview-api && pnpm publish --tag next --no-git-checks --access public - - - name: Publish ui/svelte to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/ui/package.json - cd packages/ui && pnpm build && pnpm publish --tag next --no-git-checks --access public - - - name: Publish tests-playwright to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" tests/playwright/package.json - cd tests/playwright && pnpm build && pnpm publish --tag next --no-git-checks --access public - - - name: Publish Podman Extension API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" extensions/podman/packages/api/package.json - cd extensions/podman/packages/api - pnpm publish --tag next --no-git-checks --access public diff --git a/.github/workflows/pr-check-vale.yaml b/.github/workflows/pr-check-vale.yaml deleted file mode 100644 index 6cd4dbb72..000000000 --- a/.github/workflows/pr-check-vale.yaml +++ /dev/null @@ -1,41 +0,0 @@ ---- -# -# 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: Validate website language on pull request - -on: - pull_request: - paths: - - 'website/**' - - '.github/workflows/pr-check-vale.yaml' - -jobs: - vale: - name: runner / vale - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v4 - - uses: errata-ai/vale-action@v2.1.1 - env: - # Required, set by GitHub actions automatically: - # https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - with: - files: website - fail_on_error: false - diff --git a/.github/workflows/pr-check.yaml b/.github/workflows/pr-check.yaml deleted file mode 100644 index a27a7c34a..000000000 --- a/.github/workflows/pr-check.yaml +++ /dev/null @@ -1,485 +0,0 @@ -# -# Copyright (C) 2022-2024 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: pr-check - -on: - pull_request: - types: [labeled, synchronize, opened, ready_for_review, reopened] - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} - cancel-in-progress: true - -jobs: - windows: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: Windows - runs-on: windows-2022 - timeout-minutes: 60 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v4 - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run Build - timeout-minutes: 20 - run: pnpm compile:pull-request - - - name: List Build - run: ls ./dist/ - - - uses: actions/upload-artifact@v4 - with: - name: windows-installer-x64 - path: ./dist/podman-desktop*-setup-x64.exe - - - uses: actions/upload-artifact@v4 - with: - name: windows-installer-arm64 - path: ./dist/podman-desktop*-setup-arm64.exe - - - uses: actions/upload-artifact@v4 - with: - name: windows-exe-x64 - path: ./dist/podman-desktop*-next-x64.exe - - - uses: actions/upload-artifact@v4 - with: - name: windows-exe-arm64 - path: ./dist/podman-desktop*-next-arm64.exe - - linux: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: Linux - runs-on: ubuntu-24.04 - timeout-minutes: 40 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v4 - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Install flatpak - run: | - sudo apt-get update - sudo apt-get install flatpak -y - sudo apt-get install flatpak-builder -y - sudo apt-get install elfutils -y - flatpak remote-add --if-not-exists flathub --user https://flathub.org/repo/flathub.flatpakrepo - flatpak install flathub --no-static-deltas --user -y org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08 - - - name: Run Build - timeout-minutes: 20 - run: pnpm compile:pull-request - - - name: List Build - run: ls -la ./dist/ - - - uses: actions/upload-artifact@v4 - with: - name: linux - path: ./dist/podman-desktop-*.tar.gz - - - uses: actions/upload-artifact@v4 - with: - name: flatpak - path: ./dist/podman-desktop-*.flatpak - - darwin: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: macOS - runs-on: macos-14 - timeout-minutes: 40 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v4 - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run Build - timeout-minutes: 40 - run: pnpm compile:pull-request - - - name: List Build - run: ls -la ./dist/ - - - uses: actions/upload-artifact@v4 - with: - name: macos-x64-dmg - path: ./dist/podman-desktop-*x64.dmg - - uses: actions/upload-artifact@v4 - with: - name: macos-arm64-dmg - path: ./dist/podman-desktop-*arm64.dmg - - uses: actions/upload-artifact@v4 - with: - name: macos-universal-dmg - path: ./dist/podman-desktop-*universal.dmg - - website-build: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: build website - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run website - run: pnpm website:build - - - name: Store pull request details for publish-netlify - run: | - echo "${{ github.event.number }}" > PR_NUMBER - echo "${{ github.event.pull_request.head.sha }}" > PR_SHA - - - name: Upload artifact website-content - uses: actions/upload-artifact@v4 - with: - name: website-content - path: | - website/build - PR_NUMBER - PR_SHA - - lint-format: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: linter, formatters - runs-on: ubuntu-24.04 - timeout-minutes: 40 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run linter - run: pnpm lint:check - - - name: Run formatter - run: pnpm format:check - - # Check we don't have changes in git - - name: Check no changes in git - run: | - if ! git diff --exit-code; then - echo "Found changes in git" - exit 1 - fi - - typecheck: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: typecheck - runs-on: ubuntu-24.04 - timeout-minutes: 40 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run typecheck - run: pnpm typecheck - - - name: Run svelte check - run: pnpm svelte:check - - unit-tests: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: unit tests / ${{ matrix.os }} - runs-on: ${{ matrix.os }} - timeout-minutes: 40 - strategy: - fail-fast: false - matrix: - os: [windows-2022, ubuntu-24.04, macos-15] - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run unit tests - run: pnpm test:unit - - smoke-e2e-tests: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: smoke e2e tests - runs-on: ubuntu-24.04 - strategy: - matrix: - mode: [production, development] - steps: - - uses: actions/checkout@v4 - - - name: Update podman to 5.x - run: | - echo "ubuntu version from kubic repository to install podman we need (v5)" - ubuntu_version='23.10' - echo "Add unstable kubic repo into list of available sources and get the repo key" - sudo sh -c "echo 'deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list" - curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add - - echo "install necessary dependencies for criu package which is not part of ${ubuntu_version}" - sudo apt-get install -qq libprotobuf32t64 python3-protobuf libnet1 - echo "install criu manually from static location" - curl -sLO http://cz.archive.ubuntu.com/ubuntu/pool/universe/c/criu/criu_3.16.1-2_amd64.deb && sudo dpkg -i criu_3.16.1-2_amd64.deb - echo "Updating all dependencies..." - sudo apt-get update -qq - echo "installing/update podman package..." - sudo apt-get -qq -y install podman || { echo "Start fallback steps for podman nightly installation from a static mirror" && \ - sudo sh -c "echo 'deb http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:unstable.list" && \ - curl -L "http://ftp.lysator.liu.se/pub/opensuse/repositories/devel:/kubic:/libcontainers:/unstable/xUbuntu_${ubuntu_version}/Release.key" | sudo apt-key add - && \ - sudo apt-get update && \ - sudo apt-get -y install podman; } - podman version - - - name: Revert unprivileged user namespace restrictions in Ubuntu 24.04 - run: | - # allow unprivileged user namespace - sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0 - - - name: Set cgroup_manager to 'cgroupfs' instead of systemd - run: | - mkdir -p ~/.config/containers - cat <> ~/.config/containers/containers.conf - [engine] - cgroup_manager="cgroupfs" - EOT - podman info - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run Smoke E2E tests in ${{ matrix.mode == 'production' && 'Production' || 'Development' }} Mode - run: | - if [ ${{ matrix.mode }} == 'production' ]; then - echo "Compiling the Podman Desktop in production mode" - export ELECTRON_ENABLE_INSPECT=true - pnpm compile:current --linux dir - path=$(realpath ./dist/linux-unpacked/podman-desktop) - echo "Podman Desktop built binary: $path" - export PODMAN_DESKTOP_BINARY_PATH=$path - fi - pnpm test:e2e:smoke - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v5 - if: always() # always run even if the previous step fails - with: - fail_on_failure: true - include_passed: true - detailed_summary: true - annotate_only: true - require_tests: true - report_paths: '**/*results.xml' - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: ${{ matrix.mode }}-smoke-e2e-tests - path: | - ./tests/**/output/ - !./tests/**/traces/raw - - detect_pnpm_changes: - if: ${{ contains(github.event.pull_request.labels.*.name, 'area/ci') || !github.event.pull_request.draft }} - name: Detect pnpm lock or pr-check files changes - runs-on: ubuntu-24.04 - outputs: - pnpm_lock_changed: ${{ steps.pnpm_changed.outputs.PNPM_LOCK_CHANGED }} - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - fetch-depth: 2 - - - name: Evaluate changes in files - id: pnpm_changed - run: | - git fetch origin ${{ github.event.pull_request.base.ref }} - git diff --name-only origin/${{ github.event.pull_request.base.ref }} HEAD > changes.txt - if grep -q -e 'pnpm-lock.yaml' -e 'pr-check.yaml' changes.txt; then - echo "PNPM_LOCK_CHANGED=true" >> $GITHUB_OUTPUT - else - echo "PNPM_LOCK_CHANGED=false" >> $GITHUB_OUTPUT - fi - - run-update-e2e-test: - name: win update e2e tests - needs: detect_pnpm_changes - if: contains(github.event.pull_request.labels.*.name, 'area/update') || needs.detect_pnpm_changes.outputs.pnpm_lock_changed == 'true' - runs-on: windows-2022 - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Execute PNPM - run: pnpm install --frozen-lockfile - - - name: Adjust/Downgrade local podman desktop version Windows - run: | - $version="1.0.0" - jq --arg version "$version" '.version = $version' package.json | Out-File -FilePath package.json_tmp - Move-Item -Path package.json_tmp -Destination package.json -Force - - - name: Build Podman Desktop locally with electron updater included - env: - ELECTRON_ENABLE_INSPECT: true - run: | - pnpm compile:current --win nsis - $path=('./dist/win-unpacked/Podman Desktop.exe' | resolve-path).ProviderPath - echo $path - echo ("PODMAN_DESKTOP_BINARY=" + $path) >> $env:GITHUB_ENV - - - name: Run E2E Update test - run: | - echo "${{ env.PODMAN_DESKTOP_BINARY }}" - pnpm test:e2e:update:run - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v5 - if: always() # always run even if the previous step fails - with: - fail_on_failure: true - include_passed: true - detailed_summary: true - annotate_only: true - require_tests: true - report_paths: '**/*results.xml' - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: win-update-e2e-test - path: | - ./tests/**/output/ - !./tests/**/traces/raw - - update-e2e-test: - name: update E2E test - runs-on: ubuntu-24.04 - needs: run-update-e2e-test - if: | - always() - steps: - - name: Evaluate the Windows Update test results - run: | - echo "Windows updater result: ${{ needs.run-update-e2e-test.result }}" - if [ "${{ needs.run-update-e2e-test.result }}" = "failure" ]; then - echo "Windows udpater test failed..." - exit 1 - else - echo "Windows updater test succeeded or was skipped..." - fi diff --git a/.github/workflows/publish-flathub.yaml b/.github/workflows/publish-flathub.yaml deleted file mode 100644 index 83a8133ea..000000000 --- a/.github/workflows/publish-flathub.yaml +++ /dev/null @@ -1,132 +0,0 @@ -# -# Copyright (C) 2024 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: Publish update to flathub.org - -on: - workflow_dispatch: - inputs: - version: - description: 'release version like 1.14.2' - required: true - repository_dispatch: - types: [ publish-to-flathub ] - -jobs: - - update-flathub: - name: Publish Podman Desktop to flathub - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - with: - repository: 'flathub/io.podman_desktop.PodmanDesktop' - ref: 'master' - # Change the token to the one that has write access to the fork repository - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - - name: Set version - id: VERSION - run: | - version="" - if [ "${{ github.event_name }}" == "repository_dispatch" ] - then - version="${{ github.event.client_payload.version }}" - else - version="${{ github.event.inputs.version }}" - fi - # strip out the prefix v if it's there - if [[ $version == v* ]]; then - version="${version:1}" - fi - echo "desktopVersion=$version" >> ${GITHUB_OUTPUT} - - name: Update the yaml file - run: | - # Grab the source code of Podman Desktop - export PODMAN_DESKTOP_SOURCE_URL="https://github.com/containers/podman-desktop/archive/refs/tags/v${{ steps.VERSION.outputs.desktopVersion }}.tar.gz" - wget ${PODMAN_DESKTOP_SOURCE_URL} -qO podman-desktop-source.tgz - # compute shasum256 and take the first column of the text - export PODMAN_DESKTOP_SOURCE_SHASUM=$(shasum -a 256 podman-desktop-source.tgz | awk '{print $1}') - - echo "podman Desktop source .tgz file sha256 is ${PODMAN_DESKTOP_SOURCE_SHASUM}" - - # Grab the pnpm cache for arm64 - export PNPM_STORE_CACHE_ARM64_URL="https://github.com/containers/podman-desktop/releases/download/v${{ steps.VERSION.outputs.desktopVersion }}/store-cache-pnpm-arm64.tgz" - wget ${PNPM_STORE_CACHE_ARM64_URL} -qO podman-desktop-pnpm-arm64.tgz - # compute shasum256 - export PODMAN_DESKTOP_PNPM_ARM64_SHASUM=$(shasum -a 256 podman-desktop-pnpm-arm64.tgz | awk '{print $1}') - echo "podman Desktop pnpm arm64 .tgz file sha256 is ${PODMAN_DESKTOP_PNPM_ARM64_SHASUM}" - - # Grab the pnpm cache for amd64 - export PNPM_STORE_CACHE_AMD64_URL="https://github.com/containers/podman-desktop/releases/download/v${{ steps.VERSION.outputs.desktopVersion }}/store-cache-pnpm-amd64.tgz" - wget ${PNPM_STORE_CACHE_AMD64_URL} -qO podman-desktop-pnpm-amd64.tgz - # compute shasum256 - export PODMAN_DESKTOP_PNPM_AMD64_SHASUM=$(shasum -a 256 podman-desktop-pnpm-amd64.tgz | awk '{print $1}') - echo "podman Desktop pnpm amd64 .tgz file sha256 is ${PODMAN_DESKTOP_PNPM_AMD64_SHASUM}" - - # find the version of electron being used by podman desktop - wget "https://raw.githubusercontent.com/podman-desktop/podman-desktop/refs/tags/v${{ steps.VERSION.outputs.desktopVersion }}/package.json" -qO podman-desktop-package.json - # set the version of electron - ELECTRON_VERSION=$(jq -r '.devDependencies.electron' podman-desktop-package.json) - echo "Found electron ${ELECTRON_VERSION}" - - # download electron binary (amd64) - export ELECTRON_AMD64_URL="https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/electron-v${ELECTRON_VERSION}-linux-x64.zip" - wget ${ELECTRON_AMD64_URL} -qO electron-x64.zip - # compute shasum - export ELECTRON_AMD64_SHASUM=$(shasum -a 256 electron-x64.zip | awk '{print $1}') - echo "electron x64 zip sha256 is ${ELECTRON_AMD64_SHASUM}" - - # download electron binary (arm64) - export ELECTRON_ARM64_URL="https://github.com/electron/electron/releases/download/v${ELECTRON_VERSION}/electron-v${ELECTRON_VERSION}-linux-arm64.zip" - wget ${ELECTRON_ARM64_URL} -qO electron-arm64.zip - # compute shasum - export ELECTRON_ARM64_SHASUM=$(shasum -a 256 electron-arm64.zip | awk '{print $1}') - echo "electron arm64 zip sha256 is ${ELECTRON_ARM64_SHASUM}" - - # copy original yaml file - cp io.podman_desktop.PodmanDesktop.yml io.podman_desktop.PodmanDesktop.ori - - # update the url and sha256 for the electron binaries for amd64 and arm64 - yq -i '(.modules[].sources[] | select(.url == "*electron*x64*")) += {"url":strenv(ELECTRON_AMD64_URL), "sha256":strenv(ELECTRON_AMD64_SHASUM)}' io.podman_desktop.PodmanDesktop.yml - yq -i '(.modules[].sources[] | select(.url == "*electron*arm64*")) += {"url":strenv(ELECTRON_ARM64_URL), "sha256":strenv(ELECTRON_ARM64_SHASUM)}' io.podman_desktop.PodmanDesktop.yml - - # update the pnpm store url/sha256 - yq -i '(.modules[].sources[] | select(.url == "*store-cache-pnpm*amd64*")) += {"url":strenv(PNPM_STORE_CACHE_AMD64_URL), "sha256":strenv(PODMAN_DESKTOP_PNPM_AMD64_SHASUM)}' io.podman_desktop.PodmanDesktop.yml - yq -i '(.modules[].sources[] | select(.url == "*store-cache-pnpm*arm64*")) += {"url":strenv(PNPM_STORE_CACHE_ARM64_URL), "sha256":strenv(PODMAN_DESKTOP_PNPM_ARM64_SHASUM)}' io.podman_desktop.PodmanDesktop.yml - - # update the source url/sha256 of podman desktop - yq -i '(.modules[].sources[] | select(.url == "*podman-desktop*refs*tags*")) += {"url":strenv(PODMAN_DESKTOP_SOURCE_URL), "sha256":strenv(PODMAN_DESKTOP_SOURCE_SHASUM)}' io.podman_desktop.PodmanDesktop.yml - - env: - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - PODMAN_DESKTOP_VERSION: ${{ steps.VERSION.outputs.desktopVersion }} - - name: Create Pull Request to update flathub - run: | - git config --local user.name ${{ github.actor }} - git config --local user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" - export LOCAL_BRANCH_NAME="update-to-${{ steps.VERSION.outputs.desktopVersion }}" - git checkout -b "${LOCAL_BRANCH_NAME}" - git add io.podman_desktop.PodmanDesktop.yml - export TITLE="feat: update Podman Desktop to version ${{ steps.VERSION.outputs.desktopVersion }}" - git commit -m "${TITLE}" - git remote add podman-desktop-bot https://github.com/podman-desktop-bot/io.podman_desktop.PodmanDesktop - git push podman-desktop-bot "+${LOCAL_BRANCH_NAME}" - gh pr create --title "${TITLE}" --body "${TITLE}" -H "podman-desktop-bot:${LOCAL_BRANCH_NAME}" - - env: - GH_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} diff --git a/.github/workflows/publish-to-brew.yaml b/.github/workflows/publish-to-brew.yaml deleted file mode 100644 index abd892e06..000000000 --- a/.github/workflows/publish-to-brew.yaml +++ /dev/null @@ -1,59 +0,0 @@ -# -# Copyright (C) 2022 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: Publish update to Brew - -on: - workflow_dispatch: - inputs: - version: - description: 'release version like 0.0.6' - required: true - repository_dispatch: - types: [ publish-to-brew ] - -jobs: - - publish-to-brew: - name: Publish Podman Desktop to Brew cask - runs-on: macos-14 - steps: - - name: Set version - id: VERSION - run: | - version="" - if [ "${{ github.event_name }}" == "repository_dispatch" ] - then - version="${{ github.event.client_payload.version }}" - else - version="${{ github.event.inputs.version }}" - fi - # strip out the prefix v if it's there - if [[ $version == v* ]]; then - version="${version:1}" - fi - echo "desktopVersion=$version" >> ${GITHUB_OUTPUT} - - name: Create Pull Request to update Brew - run: | - # update formulae - brew update - echo "Run the tool with version ${PODMAN_DESKTOP_VERSION}" - brew bump-cask-pr --version="${PODMAN_DESKTOP_VERSION}" podman-desktop - env: - HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - PODMAN_DESKTOP_VERSION: ${{ steps.VERSION.outputs.desktopVersion }} - HOMEBREW_NO_ANALYTICS: 1 diff --git a/.github/workflows/publish-to-chocolatey.yaml b/.github/workflows/publish-to-chocolatey.yaml deleted file mode 100644 index 9a8a54dc0..000000000 --- a/.github/workflows/publish-to-chocolatey.yaml +++ /dev/null @@ -1,111 +0,0 @@ -# -# Copyright (C) 2022 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: Publish update to Chocolatey - -on: - workflow_dispatch: - inputs: - version: - description: 'release version like 0.0.6' - required: true - force: - description: 'Force the push of the package' - required: false - default: 'false' - repository_dispatch: - types: [ publish-to-chocolatey ] - -jobs: - - version: - name: Extracting version - runs-on: ubuntu-24.04 - outputs: - desktopVersion: ${{ steps.VERSION.outputs.desktopVersion}} - - steps: - - name: set version - id: VERSION - run: | - version="" - if [ "${{ github.event_name }}" == "repository_dispatch" ] - then - version="${{ github.event.client_payload.version }}" - else - version="${{ github.event.inputs.version }}" - fi - # strip out the prefix v if it's there - if [[ $version == v* ]]; then - version="${version:1}" - fi - echo "desktopVersion=$version" >> ${GITHUB_OUTPUT} - - winget-bump: - name: Update Chocolatey - needs: version - runs-on: windows-2022 - defaults: - run: - shell: powershell - steps: - - uses: actions/checkout@v4 - - name: Install the Chocolatey Automatic Package Updater Module - run: choco install au -y - - name: Build the Podman Desktop chocolatey Package by making sure we're using the latest release - working-directory: ./.chocolatey/podman-desktop - run: | - if ($env:automaticUpdateForce -eq 'true') { - $au_Force = $true; ./update.ps1 - } else { - ./update.ps1 - } - cat podman-desktop.nuspec - env: - au_Push: ${{ github.event.inputs.force }} - automaticUpdateForce: ${{ github.event.inputs.force }} - VERSION: ${{ needs.version.outputs.desktopVersion }} - - name: Create the PR to bump the version in the main branch - run: | - git config --local user.name ${{ github.actor }} - git config --local user.email "fbenoit@redhat.com" - $bumpedBranchName = "update-chocolatey-for-${{ needs.version.outputs.desktopVersion }}" - git checkout -b $bumpedBranchName - git add .chocolatey - git commit --signoff -m "chore: Update chocolatey packages for ${{ needs.version.outputs.desktopVersion }}" - git push origin "$bumpedBranchName" - New-Item -Path . -Name "pr-title" -ItemType "file" -Value "${{ needs.version.outputs.desktopVersion }} has been released`n`nUpdate Chocolatey packages for ${{ needs.version.outputs.desktopVersion }}" - $pullRequestUrl = gh pr create --title "chore: Update Chocolatey package to ${{ needs.version.outputs.desktopVersion }}" --body-file ./pr-title --head "$bumpedBranchName" --base "main" -R "containers/podman-desktop" - echo "πŸ“’ Pull request created: $pullRequestUrl" - echo "➑️ Flag the PR as being ready for review" - gh pr ready "$pullRequestUrl" - echo "πŸ”… Mark the PR as being ok to be merged automatically" - gh pr merge "$pullRequestUrl" --auto --rebase - env: - GH_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - name: Publish Package to Chocolatey - run: | - if ($env:automaticUpdateForce -eq 'true') { - $au_Force = $true; Push-Package - } else { - Push-Package - } - working-directory: ./.chocolatey/podman-desktop - env: - api_key: ${{ secrets.CHOCOLATEY_API_KEY }} - automaticUpdateForce: ${{ github.event.inputs.force }} diff --git a/.github/workflows/publish-to-podman_io.yaml b/.github/workflows/publish-to-podman_io.yaml deleted file mode 100644 index 02347c693..000000000 --- a/.github/workflows/publish-to-podman_io.yaml +++ /dev/null @@ -1,96 +0,0 @@ -# -# 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: Publish update to podman.io website - -on: - workflow_dispatch: - inputs: - version: - description: 'release version like 1.1.0' - required: true - repository_dispatch: - types: [ publish-to-podman_io ] - -jobs: - - version: - name: Extracting version - runs-on: ubuntu-24.04 - outputs: - desktopVersion: ${{ steps.VERSION.outputs.desktopVersion}} - - steps: - - name: set version - id: VERSION - run: | - version="" - if [ "${{ github.event_name }}" == "repository_dispatch" ] - then - version="${{ github.event.client_payload.version }}" - else - version="${{ github.event.inputs.version }}" - fi - # strip out the prefix v if it's there - if [[ $version == v* ]]; then - version="${version:1}" - fi - echo "desktopVersion=$version" >> ${GITHUB_OUTPUT} - - uses: actions/checkout@v4 - with: - repository: containers/podman.io - ref: refs/heads/main - token: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - - - name: Replace the content of the file - run: | - # Replace the version in static/data/global.ts file (replace the xxx value) - # export const LATEST_DESKTOP_VERSION = 'xxx'; - sed -i "s/export const LATEST_DESKTOP_VERSION = '.*';/export const LATEST_DESKTOP_VERSION = '${{ steps.VERSION.outputs.desktopVersion }}';/g" static/data/global.ts - # Replace the version of the blog post - # export const LATEST_DESKTOP_DOWNLOAD_URL = 'https://podman-desktop.io/blog/podman-desktop-release-xxx'; - # need to strip out the last digit after the last . to get the blog post version (so for example 1.4.1 becomes 1.4) - blogPostVersion=$(echo ${{ steps.VERSION.outputs.desktopVersion }} | sed 's/\.[^.]*$//') - sed -i "s/export const LATEST_DESKTOP_DOWNLOAD_URL = '.*';/export const LATEST_DESKTOP_DOWNLOAD_URL = 'https:\/\/podman-desktop.io\/blog\/podman-desktop-release-$blogPostVersion';/g" static/data/global.ts - echo "New content of the file:" - cat static/data/global.ts - - - name: Create the PR to bump the version in the main branch - run: | - git config --local user.name ${{ github.actor }} - git config --local user.email "fbenoit@redhat.com" - bumpedBranchName="update-podman-desktop-io-for-v${{ steps.VERSION.outputs.desktopVersion }}" - echo "branch name: $bumpedBranchName" - git checkout -b $bumpedBranchName - echo "adding the file to the commit" - git add static/data/global.ts - echo "commiting the file" - git commit --signoff -m "chore: Update Podman Desktop version to v${{ steps.VERSION.outputs.desktopVersion }}" - git remote -v - git remote add podman-desktop-bot https://github.com/podman-desktop-bot/podman.io - git push podman-desktop-bot "+$bumpedBranchName" - printf "Podman Desktop v${{ steps.VERSION.outputs.desktopVersion }} has been released πŸŽ‰\nUpdate website for v${{ steps.VERSION.outputs.desktopVersion }}" > ./pr-title - pullRequestUrl=$(gh pr create --title "chore: Update Podman Desktop version to v${{ steps.VERSION.outputs.desktopVersion }}" --body-file ./pr-title --head "podman-desktop-bot:$bumpedBranchName" --base "main" -R "containers/podman.io") - echo "πŸ“’ Pull request created: $pullRequestUrl" - echo "➑️ Flag the PR as being ready for review" - gh pr ready "$pullRequestUrl" - echo "πŸ”… Mark the PR as being ok to be merged automatically" - gh pr merge "$pullRequestUrl" --auto --rebase - env: - GH_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} diff --git a/.github/workflows/publish-to-winget.yaml b/.github/workflows/publish-to-winget.yaml deleted file mode 100644 index 89af8078f..000000000 --- a/.github/workflows/publish-to-winget.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright (C) 2022 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: Publish update to Winget - -on: - workflow_dispatch: - inputs: - version: - description: 'release version like 0.0.6' - required: true - repository_dispatch: - types: [ publish-to-winget ] - -jobs: - - version: - name: Extracting version - runs-on: ubuntu-24.04 - outputs: - desktopVersion: ${{ steps.VERSION.outputs.desktopVersion}} - - steps: - - name: set version - id: VERSION - run: | - version="" - if [ "${{ github.event_name }}" == "repository_dispatch" ] - then - version="${{ github.event.client_payload.version }}" - else - version="${{ github.event.inputs.version }}" - fi - # strip out the prefix v if it's there - if [[ $version == v* ]]; then - version="${version:1}" - fi - echo "desktopVersion=$version" >> ${GITHUB_OUTPUT} - - winget-bump: - name: Update Winget - needs: version - runs-on: windows-2022 - defaults: - run: - shell: powershell - steps: - - name: Create winget PR - run: | - Invoke-WebRequest https://aka.ms/wingetcreate/latest -OutFile wingetcreate.exe - .\wingetcreate.exe update RedHat.Podman-Desktop -u $Env:URL_X64 $Env:URL_ARM64 -v $Env:VERSION -t $Env:TOKEN --submit - env: - TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - VERSION: ${{ needs.version.outputs.desktopVersion }} - URL_X64: ${{ format('https://github.com/containers/podman-desktop/releases/download/v{0}/podman-desktop-{0}-setup-x64.exe|x64', needs.version.outputs.desktopVersion) }} - URL_ARM64: ${{ format('https://github.com/containers/podman-desktop/releases/download/v{0}/podman-desktop-{0}-setup-arm64.exe|arm64', needs.version.outputs.desktopVersion) }} diff --git a/.github/workflows/publish-website-pr-netlify.yaml b/.github/workflows/publish-website-pr-netlify.yaml deleted file mode 100644 index e2782636f..000000000 --- a/.github/workflows/publish-website-pr-netlify.yaml +++ /dev/null @@ -1,67 +0,0 @@ -# -# Copyright (C) 2022 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 - -# NOTE: Because this worklow is using secrets, it cannot run directly on a pull-request workflow, which is running in the context of the forked repository. - -name: Publish pull request content on netlify - -on: - workflow_run: - workflows: - - 'pr-check' - types: - - completed - -jobs: - publish: - name: Publish content of the website pull request on netlify - runs-on: ubuntu-24.04 - steps: - - name: Download website content artifact - uses: dawidd6/action-download-artifact@v7 - with: - workflow: ${{ github.event.workflow_run.workflow_id }} - name: website-content - path: content - allow_forks: true - - - name: Publish preview netlify - uses: netlify/actions/cli@master - id: netlify-publish - with: - args: deploy --dir=content/website/build --functions=functions - env: - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - - - name: 'Update status of Pull Request' - uses: actions/github-script@v7 - with: - script: | - const { repo: { owner, repo } } = context; - const netlifyUrl = '${{ steps.netlify-publish.outputs.NETLIFY_URL }}'; - const fs = require('node:fs'); - let sha = await fs.promises.readFile('content/PR_SHA', 'utf8'); - sha = sha?.trim(); - if (sha && sha.length !== 40) { - throw new Error('Invalid PR_SHA'); - } - // ensure it's a valid sha and contains only hex characters (no space, dot, etc) else exit - if (sha && !sha.match(/^[0-9a-fA-F]+$/)) { - throw new Error('Invalid PR_SHA'); - } - await github.rest.repos.createCommitStatus({ owner, repo, sha, state: "success", target_url: netlifyUrl, description: "See pull request website online", context: "netlify"}) diff --git a/.github/workflows/release-notes.yaml b/.github/workflows/release-notes.yaml deleted file mode 100644 index cfcb6b141..000000000 --- a/.github/workflows/release-notes.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright (C) 2023-2024 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-notes - -on: - workflow_dispatch: - inputs: - milestone: - description: 'Milestone to generate release notes from (title of the milestone eg 1.0.0)' - required: true -env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - -jobs: - - build: - name: Generate release notes - runs-on: ubuntu-24.04 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Build - run: | - cd tools - pnpm build - - - name: Generate the release notes document - run: | - node tools/dist/release-notes-generator.cjs --milestone ${{ github.event.inputs.milestone }} >release-notes.md - - - name: Archive the generated release notes - uses: actions/upload-artifact@v4 - with: - name: release-notes - path: release-notes.md - diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index b1c4eccaa..000000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,297 +0,0 @@ -# -# Copyright (C) 2022-2024 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}} - DEBUG: electron-builder - -jobs: - - tag: - name: Tagging - runs-on: ubuntu-24.04 - outputs: - githubTag: ${{ steps.TAG_UTIL.outputs.githubTag}} - desktopVersion: ${{ steps.TAG_UTIL.outputs.desktopVersion}} - 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 "desktopVersion=$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.desktopVersion }}\",#g" package.json - find extensions/* -maxdepth 5 -name "package.json" | xargs -I {} sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ steps.TAG_UTIL.outputs.desktopVersion }}\",#g" {} - git add package.json extensions/*/package.json extensions/*/packages/extension/package.json - - # Update the issue template with the new version and move old version below - nextVersionLineNumber=$(grep -n "next (development version)" .github/ISSUE_TEMPLATE/bug_report.yml | cut -d ":" -f 1 | head -n 1) - currentVersionItem=$(sed "$(expr ${nextVersionLineNumber} - 1)q;d" .github/ISSUE_TEMPLATE/bug_report.yml) - newVersionItem=$(echo "$currentVersionItem" | sed -r -e "s|\".*\"|\"${{ steps.TAG_UTIL.outputs.desktopVersion }}\"|") - # delete the lines before the next version line - sed -i "$(expr ${nextVersionLineNumber} - 1)d" .github/ISSUE_TEMPLATE/bug_report.yml - # insert the version being tagged - sed -i "$(expr ${nextVersionLineNumber} - 1)i\\${newVersionItem}" .github/ISSUE_TEMPLATE/bug_report.yml - sed -i "$(expr ${nextVersionLineNumber} + 1)i\\${currentVersionItem}" .github/ISSUE_TEMPLATE/bug_report.yml - # add the changes - git add .github/ISSUE_TEMPLATE/bug_report.yml - - # Add the new version in the appdata.xml file - xmlReleasesLineNumber=$(grep -n "" .flatpak-appdata.xml | cut -d ":" -f 1 | head -n 1) - newFlatpakReleaseItem=" " - sed -i "$(expr ${xmlReleasesLineNumber} + 1)i\\${newFlatpakReleaseItem}" .flatpak-appdata.xml - git add .flatpak-appdata.xml - - # 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: true - - name: Create the PR to bump the version in the main branch (only if we're tagging from main branch) - if: ${{ github.event.inputs.branch == 'main' }} - run: | - git config --local user.name ${{ github.actor }} - git config --local user.email "fbenoit@redhat.com" - CURRENT_VERSION=$(echo "${{ steps.TAG_UTIL.outputs.desktopVersion }}") - tmp=${CURRENT_VERSION%.*} - minor=${tmp#*.} - bumpedVersion=${CURRENT_VERSION%%.*}.$((minor + 1)).0 - bumpedBranchName="bump-to-${bumpedVersion}" - git checkout -b "${bumpedBranchName}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" package.json - find extensions/* -maxdepth 5 -name "package.json" | xargs -I {} sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${bumpedVersion}-next\",#g" {} - git add package.json extensions/*/package.json extensions/*/packages/extension/package.json - git commit -s --amend -m "chore: bump version to ${bumpedVersion}" - git push origin "${bumpedBranchName}" - echo -e "πŸ“’ Bump version to ${bumpedVersion}\n\n${{ steps.TAG_UTIL.outputs.desktopVersion }} has been released.\n\n Time to switch to the new ${bumpedVersion} version πŸ₯³" > /tmp/pr-title - pullRequestUrl=$(gh pr create --title "chore: πŸ“’ Bump version to ${bumpedVersion}" --body-file /tmp/pr-title --head "${bumpedBranchName}" --base "main") - echo "πŸ“’ Pull request created: ${pullRequestUrl}" - echo "➑️ Flag the PR as being ready for review" - gh pr ready "${pullRequestUrl}" - echo "πŸ”… Mark the PR as being ok to be merged automatically" - gh pr merge "${pullRequestUrl}" --auto --rebase - env: - GITHUB_TOKEN: ${{ secrets.PODMAN_DESKTOP_BOT_TOKEN }} - - build: - name: Build / ${{ matrix.os }} ${{ matrix.airgap == 'true' && '(Air Gap)' || '' }} - needs: tag - runs-on: ${{ matrix.os }} - strategy: - matrix: - include: - - os: "windows-2022" - - os: "windows-2022" - airgap: "true" - - os: "macos-14" - - os: "macos-14" - airgap: "true" - - os: "ubuntu-24.04" - timeout-minutes: 60 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.tag.outputs.githubTag}} - - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - - name: setup telemetry key for production - run: | - sed -i -r -e "s/SEGMENT_KEY = '.*'/SEGMENT_KEY = '${{ secrets.SEGMENT_WRITE_KEY }}'/" packages/main/src/plugin/telemetry/telemetry.ts - - - name: Execute pnpm - run: pnpm install - - - name: Install flatpak on Linux - if: ${{ matrix.os=='ubuntu-24.04' }} - run: | - sudo apt-get update - sudo apt-get install flatpak -y - sudo apt-get install flatpak-builder -y - sudo apt-get install elfutils -y - flatpak remote-add --if-not-exists flathub --user https://flathub.org/repo/flathub.flatpakrepo - flatpak install flathub --no-static-deltas --user -y org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08 - - name: Set macOS environment variables - if: startsWith(matrix.os, 'macos') - run: | - echo "CSC_LINK=${{secrets.CSC_LINK}}" >> $GITHUB_ENV - echo "CSC_KEY_PASSWORD=${{secrets.CSC_KEY_PASSWORD}}" >> $GITHUB_ENV - echo "APPLE_ID=${{secrets.APPLE_ID}}" >> $GITHUB_ENV - echo "APPLE_APP_SPECIFIC_PASSWORD=${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}" >> $GITHUB_ENV - echo "APPLE_TEAM_ID=${{secrets.APPLE_TEAM_ID}}" >> $GITHUB_ENV - - - name: Install Azure SignTool on Windows - if: startsWith(matrix.os, 'windows') - run: | - dotnet tool install --global AzureSignTool --version 3.0.0 - echo "AZURE_KEY_VAULT_CERTIFICATE=${{secrets.AZURE_KEY_VAULT_CERTIFICATE}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_CLIENT_ID=${{secrets.AZURE_KEY_VAULT_CLIENT_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_SECRET=${{secrets.AZURE_KEY_VAULT_SECRET}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_TENANT_ID=${{secrets.AZURE_KEY_VAULT_TENANT_ID}}" | Out-File -FilePath $env:GITHUB_ENV -Append - echo "AZURE_KEY_VAULT_URL=${{secrets.AZURE_KEY_VAULT_URL}}" | Out-File -FilePath $env:GITHUB_ENV -Append - - - name: Run Build - timeout-minutes: 40 - env: - AIRGAP_DOWNLOAD: ${{ matrix.airgap == 'true' && '1' || '' }} - run: pnpm compile:next - - release: - needs: [tag, build] - name: Release - runs-on: ubuntu-24.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}} - - publish: - needs: [tag, release] - name: Publish - runs-on: ubuntu-24.04 - steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Set-up npmjs auth token - run: printf "//registry.npmjs.org/:_authToken=${{ secrets.NPM_AUTH_TOKEN }}\n" >> ~/.npmrc - - - name: Publish API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/extension-api/package.json - cd packages/extension-api && pnpm publish --tag latest --no-git-checks --access public - - - name: Publish Webview API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/webview-api/package.json - cd packages/webview-api && pnpm publish --tag latest --no-git-checks --access public - - - name: Publish ui/svelte to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" packages/ui/package.json - cd packages/ui && pnpm build && pnpm publish --tag latest --no-git-checks --access public - - - name: Publish tests-playwright to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" tests/playwright/package.json - cd tests/playwright && pnpm build && pnpm publish --tag latest --no-git-checks --access public - - - name: Publish Podman Extension API to npmjs - run: | - echo "Using version ${{ needs.tag.outputs.desktopVersion }}" - sed -i "s#version\":\ \"\(.*\)\",#version\":\ \"${{ needs.tag.outputs.desktopVersion }}\",#g" extensions/podman/packages/api/package.json - cd extensions/podman/packages/api - pnpm publish --tag latest --no-git-checks --access public - - # publish the pnpm store for flathub builds - pnpm-store: - needs: [tag, release] - name: pnpm-store-${{ matrix.arch }} - runs-on: ubuntu-24.04 - strategy: - matrix: - arch: [amd64, arm64] - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.tag.outputs.githubTag}} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: create the pnpm store from the dependencies - run: | - podman run --platform linux/${{ matrix.arch }} -v $(pwd):/project --rm -it --entrypoint=sh node:20 -c "cd /project && corepack enable pnpm && COREPACK_ENABLE_DOWNLOAD_PROMPT=0 pnpm install --frozen-lockfile --store-dir pnpm-store" - # now the store is in the pnpm-store directory - # create a tarball of the store - echo "Creating the archive store-cache-pnpm-${{ matrix.arch }}.tgz" - tar -czf store-cache-pnpm-${{ matrix.arch }}.tgz pnpm-store - - - name: Upload binaries to release - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - file: store-cache-pnpm-${{ matrix.arch }}.tgz - tag: ${{ needs.tag.outputs.githubTag }} diff --git a/.github/workflows/stale.yaml b/.github/workflows/stale.yaml deleted file mode 100644 index 474a371b8..000000000 --- a/.github/workflows/stale.yaml +++ /dev/null @@ -1,65 +0,0 @@ -# -# Copyright (C) 2024 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: stale - -on: - schedule: - - cron: "5 0 * * *" - workflow_dispatch: - -permissions: - contents: read - -jobs: - stale: - permissions: - issues: write # for actions/stale to close stale issues - pull-requests: write # for actions/stale to close stale PRs - - runs-on: ubuntu-24.04 - steps: - - uses: actions/stale@v9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - # Please refer to https://github.com/actions/stale/ - # limit to 1000 operations per run - operations-per-run: 1000 - days-before-issue-stale: 180 - days-before-issue-close: 30 - stale-issue-label: lifecycle/stale - exempt-issue-labels: lifecycle/frozen - stale-issue-message: > - This issue has been automatically marked as stale because it has not had - activity in the last 6 months. It will be closed in 30 days if no further activity occurs. Please - feel free to leave a comment if you believe the issue is still relevant. - Thank you for your contributions! - close-issue-message: > - This issue has been automatically closed because it has not had any further - activity in the last 30 days. Thank you for your contributions! - days-before-pr-stale: 180 - days-before-pr-close: 14 - stale-pr-label: lifecycle/stale - exempt-pr-labels: lifecycle/frozen - stale-pr-message: > - This pull request has been automatically marked as stale because it has not had - activity in the last 6 months. It will be closed in 2 weeks if no further activity occurs. Please - feel free to give a status update or ping for review. Thank you for your contributions! - close-pr-message: > - This pull request has been automatically closed because it has not had any further - activity in the last 2 weeks. Thank you for your contributions! - remove-stale-when-updated: true diff --git a/.github/workflows/website-next.yaml b/.github/workflows/website-next.yaml deleted file mode 100644 index 48d366f22..000000000 --- a/.github/workflows/website-next.yaml +++ /dev/null @@ -1,73 +0,0 @@ -# -# Copyright (C) 2022 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: Publish Website - -on: - workflow_dispatch: - push: - branches: - - main - paths: - - 'package.json' - - 'pnpm-lock.yaml' - - 'storybook/**' - - 'website/**' - - 'packages/extension-api/src/**' - -env: - GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} - -jobs: - deploy: - name: Build and deploy website - runs-on: ubuntu-24.04 - timeout-minutes: 60 - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ needs.tag.outputs.githubTag}} - - uses: pnpm/action-setup@v4 - name: Install pnpm - with: - run_install: false - - - uses: actions/setup-node@v4 - with: - node-version: 20 - cache: 'pnpm' - - - name: Execute pnpm - run: pnpm install - - - name: Run Build - timeout-minutes: 20 - run: pnpm website:build - - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v4 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - # Build output to publish to the `gh-pages` branch: - publish_dir: ./website/build - # The following lines assign commit authorship to the official - # GH-Actions bot for deploys to `gh-pages` branch: - # https://github.com/actions/checkout/issues/13#issuecomment-724415212 - # The GH actions bot is used by default if you didn't specify the two fields. - # You can swap them out with your own user credentials. - user_name: github-actions[bot] - user_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/extensions/compose/package.json b/extensions/compose/package.json index f6269cfd1..2e7af4ea9 100644 --- a/extensions/compose/package.json +++ b/extensions/compose/package.json @@ -2,7 +2,7 @@ "name": "compose", "displayName": "Compose", "description": "Install Compose binary to work with Podman", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/docker/package.json b/extensions/docker/package.json index 457fea634..b667a163e 100644 --- a/extensions/docker/package.json +++ b/extensions/docker/package.json @@ -2,7 +2,7 @@ "name": "docker", "displayName": "Docker", "description": "Integration for Docker engine", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/kind/package.json b/extensions/kind/package.json index 7cc93a49c..4e9cc7c02 100644 --- a/extensions/kind/package.json +++ b/extensions/kind/package.json @@ -2,7 +2,7 @@ "name": "kind", "displayName": "Kind", "description": "Integration for Kind: run local Kubernetes clusters using container β€œnodes”", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/kube-context/package.json b/extensions/kube-context/package.json index 290d8b38d..03bf962b2 100644 --- a/extensions/kube-context/package.json +++ b/extensions/kube-context/package.json @@ -2,7 +2,7 @@ "name": "kube-context", "displayName": "Kube Context", "description": "Easily switch between Kubernetes contexts", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/kubectl-cli/package.json b/extensions/kubectl-cli/package.json index 964ca9129..32f6a9978 100644 --- a/extensions/kubectl-cli/package.json +++ b/extensions/kubectl-cli/package.json @@ -2,7 +2,7 @@ "name": "kubectl-cli", "displayName": "kubectl CLI", "description": "Install and update kubectl CLI Tools without leaving Podman Desktop", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/lima/package.json b/extensions/lima/package.json index c94e63014..8729f327c 100644 --- a/extensions/lima/package.json +++ b/extensions/lima/package.json @@ -2,7 +2,7 @@ "name": "lima", "displayName": "Lima", "description": "Integration for Lima: Linux Machines (typically macOS)", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/extensions/registries/package.json b/extensions/registries/package.json index ead3ddec5..52c7f8467 100644 --- a/extensions/registries/package.json +++ b/extensions/registries/package.json @@ -2,7 +2,7 @@ "name": "registries", "displayName": "Registries", "description": "Adds default registries for Quay, DockerHub, GitHub, and Google Container Registry", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "icon": "icon.png", "publisher": "podman-desktop", "license": "Apache-2.0", diff --git a/package.json b/package.json index c2db8ec9d..aa0c3e8e0 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "podman-desktop", "productName": "Podman Desktop", - "repository": "https://github.com/podman-desktop/podman-desktop", + "repository": "https://github.com/podman-desktop/testing-prereleases", "homepage": "https://www.podman-desktop.io", - "version": "1.16.0-next", + "version": "1.16.0-202412170225-c84573291f0", "license": "apache-2.0", "type": "module", "private": true,