mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 10:18:54 +00:00
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.4.0 to 3.6.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p> <blockquote> <h2>v3.6.0</h2> <ul> <li>Add <code>registry-auth</code> input for raw authentication to registries by <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/887">docker/login-action#887</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.890.0 in <a href="https://redirect.github.com/docker/login-action/pull/882">docker/login-action#882</a> <a href="https://redirect.github.com/docker/login-action/pull/890">docker/login-action#890</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.63.0 in <a href="https://redirect.github.com/docker/login-action/pull/883">docker/login-action#883</a></li> <li>Bump brace-expansion from 1.1.11 to 1.1.12 in <a href="https://redirect.github.com/docker/login-action/pull/880">docker/login-action#880</a></li> <li>Bump undici from 5.28.4 to 5.29.0 in <a href="https://redirect.github.com/docker/login-action/pull/879">docker/login-action#879</a></li> <li>Bump tmp from 0.2.3 to 0.2.4 in <a href="https://redirect.github.com/docker/login-action/pull/881">docker/login-action#881</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.5.0...v3.6.0">https://github.com/docker/login-action/compare/v3.5.0...v3.6.0</a></p> <h2>v3.5.0</h2> <ul> <li>Support dual-stack endpoints for AWS ECR by <a href="https://github.com/Spacefish"><code>@Spacefish</code></a> <a href="https://github.com/crazy-max"><code>@crazy-max</code></a> in <a href="https://redirect.github.com/docker/login-action/pull/874">docker/login-action#874</a> <a href="https://redirect.github.com/docker/login-action/pull/876">docker/login-action#876</a></li> <li>Bump <code>@aws-sdk/client-ecr</code> to 3.859.0 in <a href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a> <a href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li> <li>Bump <code>@aws-sdk/client-ecr-public</code> to 3.859.0 in <a href="https://redirect.github.com/docker/login-action/pull/860">docker/login-action#860</a> <a href="https://redirect.github.com/docker/login-action/pull/878">docker/login-action#878</a></li> <li>Bump <code>@docker/actions-toolkit</code> from 0.57.0 to 0.62.1 in <a href="https://redirect.github.com/docker/login-action/pull/870">docker/login-action#870</a></li> <li>Bump form-data from 2.5.1 to 2.5.5 in <a href="https://redirect.github.com/docker/login-action/pull/875">docker/login-action#875</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v3.4.0...v3.5.0">https://github.com/docker/login-action/compare/v3.4.0...v3.5.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="5e57cd1181"><code>5e57cd1</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/890">#890</a> from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li> <li><a href="97e31439e8"><code>97e3143</code></a> chore: update generated content</li> <li><a href="3a0796b57f"><code>3a0796b</code></a> build(deps): bump the aws-sdk-dependencies group with 2 updates</li> <li><a href="5b7b28b1cc"><code>5b7b28b</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/882">#882</a> from docker/dependabot/npm_and_yarn/aws-sdk-dependenc...</li> <li><a href="abc9fb3154"><code>abc9fb3</code></a> chore: update generated content</li> <li><a href="d468688814"><code>d468688</code></a> build(deps): bump the aws-sdk-dependencies group with 2 updates</li> <li><a href="a99b2f88fc"><code>a99b2f8</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/883">#883</a> from docker/dependabot/npm_and_yarn/docker/actions-to...</li> <li><a href="0d7fae8057"><code>0d7fae8</code></a> chore: update generated content</li> <li><a href="9832253cb7"><code>9832253</code></a> build(deps): bump <code>@docker/actions-toolkit</code> from 0.62.1 to 0.63.0</li> <li><a href="09e05bbdf6"><code>09e05bb</code></a> Merge pull request <a href="https://redirect.github.com/docker/login-action/issues/881">#881</a> from docker/dependabot/npm_and_yarn/tmp-0.2.4</li> <li>Additional commits viewable in <a href="74a5d14239...5e57cd1181">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
220 lines
8.3 KiB
YAML
220 lines
8.3 KiB
YAML
name: Publish release
|
|
run-name: Triggered by ${{ github.actor }}
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
release_name:
|
|
description: "Existing release name to publish"
|
|
required: true
|
|
release:
|
|
types:
|
|
- published
|
|
|
|
concurrency:
|
|
group: "publish-production-${{ github.event_name }}-${{ github.workflow }}-${{ github.ref }}"
|
|
cancel-in-progress: false
|
|
|
|
jobs:
|
|
publish-docker-images:
|
|
if: >-
|
|
${{
|
|
startsWith(inputs.release_name || github.event.release.name, 'gateway') ||
|
|
startsWith(inputs.release_name || github.event.release.name, 'headless-client')
|
|
}}
|
|
runs-on: ubuntu-24.04
|
|
permissions:
|
|
# Needed to upload artifacts to a release
|
|
packages: write
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
- name: Login to GitHub Container Registry
|
|
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Set variables
|
|
id: set-variables
|
|
env:
|
|
release_name: ${{ inputs.release_name || github.event.release.name }}
|
|
GH_TOKEN: ${{ github.token }}
|
|
run: |
|
|
set -xe
|
|
|
|
if [[ "$release_name" =~ gateway* ]]; then
|
|
ARTIFACT=gateway
|
|
VERSION=${release_name#gateway-}
|
|
elif [[ "$release_name" =~ headless* ]]; then
|
|
ARTIFACT=client
|
|
VERSION=${release_name#headless-client-}
|
|
else
|
|
echo "Shouldn't have gotten here. Exiting."
|
|
exit 1
|
|
fi
|
|
|
|
MAJOR_VERSION="${VERSION%%.*}"
|
|
MAJOR_MINOR_VERSION="${VERSION%.*}"
|
|
|
|
sha=$(gh release view "${release_name}" --json targetCommitish -q '.targetCommitish')
|
|
|
|
# shellcheck disable=SC2129 # individual env exports are cleaner
|
|
echo "artifact=$ARTIFACT" >> "$GITHUB_OUTPUT"
|
|
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
|
echo "major_version=$MAJOR_VERSION" >> "$GITHUB_OUTPUT"
|
|
echo "major_minor_version=$MAJOR_MINOR_VERSION" >> "$GITHUB_OUTPUT"
|
|
echo "sha=$sha" >> "$GITHUB_OUTPUT"
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
|
- name: Pull and push
|
|
run: |
|
|
set -xe
|
|
|
|
SOURCE_TAG=ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:${{ steps.set-variables.outputs.sha }}
|
|
|
|
docker buildx imagetools create \
|
|
-t ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:${{ steps.set-variables.outputs.version }} \
|
|
-t ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:${{ steps.set-variables.outputs.version }}-${{ steps.set-variables.outputs.sha }} \
|
|
-t ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:${{ steps.set-variables.outputs.major_version }} \
|
|
-t ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:${{ steps.set-variables.outputs.major_minor_version }} \
|
|
-t ghcr.io/firezone/${{ steps.set-variables.outputs.artifact }}:latest \
|
|
$SOURCE_TAG
|
|
|
|
publish-clients-to-winget:
|
|
name: Publish ${{ matrix.identifier }} to winget
|
|
runs-on: windows-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- identifier: Firezone.Client.GUI
|
|
tag_prefix: gui-client
|
|
- identifier: Firezone.Client.Headless
|
|
tag_prefix: headless-client
|
|
steps:
|
|
- id: get-version
|
|
run: |
|
|
version=${{ inputs.release_name || github.event.release.name }}
|
|
version=${version#${{ matrix.tag_prefix }}-}
|
|
echo "version=$version" >> "$GITHUB_OUTPUT"
|
|
shell: bash
|
|
- uses: vedantmgoyal9/winget-releaser@19e706d4c9121098010096f9c495a70a7518b30f # main
|
|
if: ${{ startsWith((inputs.release_name || github.event.release.name), matrix.tag_prefix) }}
|
|
with:
|
|
identifier: ${{ matrix.identifier }}
|
|
version: ${{ steps.get-version.outputs.version }}
|
|
token: ${{ secrets.WINGET_TOKEN }}
|
|
release-notes-url: https://firezone.dev/changelog
|
|
release-tag: ${{ inputs.release_name || github.event.release.tag_name || github.ref_name }}
|
|
|
|
create-publish-pr:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
# TODO: This hack is needed because the macOS client isn't tagged as `apple-client`.
|
|
- tag_prefix: gateway
|
|
component: gateway
|
|
- tag_prefix: gui-client
|
|
component: gui-client
|
|
- tag_prefix: headless-client
|
|
component: headless-client
|
|
- tag_prefix: macos-client
|
|
component: apple-client
|
|
- tag_prefix: android-client
|
|
component: android-client
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
token: ${{ secrets.RELEASE_PR_BOT_GITHUB_TOKEN }}
|
|
- uses: ./.github/actions/setup-gpg
|
|
id: setup-gpg
|
|
if: ${{ startsWith(inputs.release_name || github.event.release.name, matrix.tag_prefix) }}
|
|
with:
|
|
key: ${{ secrets.RELEASE_PR_BOT_GPG_KEY }}
|
|
email: github-bot@firezone.dev
|
|
- if: ${{ startsWith(inputs.release_name || github.event.release.name, matrix.tag_prefix) }}
|
|
run: |
|
|
set -x
|
|
|
|
# Extract version from release name
|
|
version=${{ inputs.release_name || github.event.release.name }}
|
|
version=${version#${{ matrix.tag_prefix }}-}
|
|
|
|
# Configure git
|
|
git config --local user.email "github-bot@firezone.dev"
|
|
git config --local user.name "Firezone Bot"
|
|
git config --local user.signingkey "${{ steps.setup-gpg.outputs.key_id }}"
|
|
git config --local commit.gpgsign true
|
|
|
|
# Create the PR
|
|
scripts/create-publish-pr.sh ${{ matrix.component }} "$version"
|
|
shell: bash
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.RELEASE_PR_BOT_GITHUB_TOKEN }}
|
|
RELEASE_PR_BOT_GPG_KEY: "${{ secrets.RELEASE_PR_BOT_GPG_KEY }}"
|
|
|
|
create-sentry-release:
|
|
name: create_${{ matrix.component }}_sentry_release
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
matrix:
|
|
# TODO: This hack is needed because the macOS client isn't tagged as `apple-client`.
|
|
include:
|
|
- component: gateway
|
|
projects: gateway
|
|
- component: gui-client
|
|
projects: gui-client
|
|
- component: headless-client
|
|
projects: headless-client
|
|
- component: macos-client
|
|
projects: apple-client
|
|
- component: android-client
|
|
projects: android-client
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: ./.github/actions/create-sentry-release
|
|
if: ${{ startsWith(github.event.release.name, matrix.component) }}
|
|
with:
|
|
component: ${{ matrix.component }}
|
|
projects: ${{ matrix.projects }}
|
|
sentry_token: ${{ secrets.SENTRY_AUTH_TOKEN }}
|
|
|
|
promote-deb-packages:
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- tag_prefix: gateway
|
|
deb_name: firezone-gateway
|
|
- tag_prefix: gui-client
|
|
deb_name: firezone-client-gui
|
|
steps:
|
|
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- uses: ./.github/actions/setup-azure-cli
|
|
|
|
- name: Copy preview archive to import-stable
|
|
if: ${{ startsWith(inputs.release_name || github.event.release.name, matrix.tag_prefix) }}
|
|
run: |
|
|
set -e
|
|
|
|
# Extract version from release name
|
|
version=${{ inputs.release_name || github.event.release.name }}
|
|
version=${version#${{ matrix.tag_prefix }}-}
|
|
|
|
# Copy `.deb`s to `import-stable`
|
|
az storage blob copy start-batch \
|
|
--destination-container apt \
|
|
--source-container apt \
|
|
--pattern "pool-preview/${{ matrix.deb_name }}_$version*" \
|
|
--destination-path import-stable \
|
|
--connection-string "${{ secrets.AZURERM_ARTIFACTS_CONNECTION_STRING }}"
|
|
|
|
regenerate-apt-index:
|
|
needs: promote-deb-packages
|
|
uses: ./.github/workflows/_apt.yml
|
|
secrets: inherit
|