mirror of
https://github.com/moby/buildkit.git
synced 2026-08-07 08:10:44 +00:00
101 lines
3.3 KiB
YAML
101 lines
3.3 KiB
YAML
# source latest
|
|
# result moby/buildkit:latest > moby/buildkit:buildx-stable-1
|
|
# moby/buildkit:rootless > moby/buildkit:buildx-stable-1-rootless
|
|
# moby/buildkit:ubuntu-latest > moby/buildkit:buildx-stable-1-gpu
|
|
#
|
|
# source v0.8.1
|
|
# result moby/buildkit:v0.8.1 > moby/buildkit:buildx-stable-1
|
|
# moby/buildkit:v0.8.1-rootless > moby/buildkit:buildx-stable-1-rootless
|
|
# moby/buildkit:v0.8.1-ubuntu > moby/buildkit:buildx-stable-1-gpu
|
|
name: buildx-image
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
source-tag:
|
|
description: 'BuildKit source Docker tag'
|
|
required: true
|
|
default: 'latest'
|
|
type: string
|
|
dry-run:
|
|
description: 'Dry run'
|
|
required: false
|
|
default: true
|
|
type: boolean
|
|
|
|
env:
|
|
SETUP_BUILDX_VERSION: "edge"
|
|
REPO_SLUG_TARGET: "moby/buildkit"
|
|
|
|
jobs:
|
|
create:
|
|
runs-on: ubuntu-24.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
tag:
|
|
- 'buildx-stable-1'
|
|
flavor:
|
|
- ''
|
|
- 'rootless'
|
|
- 'ubuntu'
|
|
steps:
|
|
-
|
|
name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@bb05f3f5519dd87d3ba754cc423b652a5edd6d2c # v4.2.0
|
|
with:
|
|
version: ${{ env.SETUP_BUILDX_VERSION }}
|
|
buildkitd-flags: --debug
|
|
-
|
|
name: Login to DockerHub
|
|
if: ${{ !inputs['dry-run'] }}
|
|
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
env:
|
|
DOCKERHUB_OIDC_CONNECTIONID: ${{ vars.BUILDKIT_OIDC_CONNECTIONID }}
|
|
with:
|
|
username: moby
|
|
-
|
|
name: Create
|
|
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
|
env:
|
|
INPUT_SOURCE-TAG: ${{ inputs.source-tag }}
|
|
INPUT_DRY-RUN: ${{ inputs.dry-run }}
|
|
INPUT_DEST-TAG: ${{ matrix.tag }}
|
|
INPUT_FLAVOR: ${{ matrix.flavor }}
|
|
with:
|
|
script: |
|
|
const inpSourceTag = core.getInput('source-tag');
|
|
const inpDryRun = core.getBooleanInput('dry-run');
|
|
const inpDestTag = core.getInput('dest-tag');
|
|
const inpFlavor = core.getInput('flavor');
|
|
const createArgs = ['buildx', 'imagetools', 'create'];
|
|
if (inpDryRun) {
|
|
createArgs.push('--dry-run');
|
|
}
|
|
let sourceTag = inpSourceTag;
|
|
let destTag = inpDestTag;
|
|
if (inpFlavor !== '') {
|
|
if (inpFlavor === 'ubuntu') {
|
|
sourceTag = `${inpSourceTag}-${inpFlavor}`;
|
|
destTag = `${inpDestTag}-gpu`;
|
|
} else {
|
|
sourceTag = inpSourceTag === 'latest' ? inpFlavor : `${inpSourceTag}-${inpFlavor}`;
|
|
destTag = `${inpDestTag}-${inpFlavor}`;
|
|
}
|
|
}
|
|
createArgs.push('--tag', `moby/buildkit:${destTag}`, `moby/buildkit:${sourceTag}`);
|
|
await exec.getExecOutput('docker', createArgs, {
|
|
ignoreReturnCode: true
|
|
}).then(res => {
|
|
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
throw new Error(res.stderr);
|
|
}
|
|
});
|