Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
b53ff7b
feat: transparent buildx support for remote buildkit (#6732)
reingart Apr 22, 2024
ade44ad
fix warnings and import cycle (UT/integration)
reingart Jan 14, 2025
44fb72c
fix docker build UTs
reingart Jan 17, 2025
0611204
refactor global config to allow buildx builders
reingart Jan 18, 2025
fd74681
fix windows UT
reingart Jan 18, 2025
c608380
buildx integration test
reingart Jan 19, 2025
9bafc7c
feat: buildx multiplatform images w/ buildkit
reingart Jan 21, 2025
d95184c
integration test for buildx multiplatform images
reingart Jan 31, 2025
8adcfa1
fix buildx image digest when pushed to registry
reingart Jan 31, 2025
daf2b09
fix: "unknown/unknown" architecture/OS in buildx multiplatform images
reingart Feb 2, 2025
9073ce0
fix actionable error for buildx cross-compile
reingart Feb 3, 2025
c5eb4e5
docs: buildx design proposal
reingart Feb 3, 2025
aa143f3
fix: disable metrics and prompts in buildx config
reingart Feb 3, 2025
df3c188
chore: fix linter issues
reingart Feb 4, 2025
27394c1
Merge branch 'main' of github.com:GoogleContainerTools/skaffold into …
reingart Mar 1, 2025
19cc43a
chore: move schema doc changes to v4beta13
reingart Mar 1, 2025
b0cb3c5
Merge pull request #1 from reingart/gh-buildx
reingart Aug 14, 2025
65ea832
ci: automated release (GitHub action)
reingart Aug 14, 2025
dcff629
Merge pull request #4 from reingart/release-action
reingart Aug 15, 2025
58a5fe5
ci: run release on push too
reingart Aug 15, 2025
adf32d5
fix(buildx): export cache as OCI artifact by default
reingart Aug 15, 2025
7192388
refactor: configurable cache-repo
reingart Aug 20, 2025
91b44cd
refactor: cache src/dest
reingart Aug 22, 2025
8421dc1
refactor: cache-tag template expansion
reingart Sep 2, 2025
9597f1f
refactor: cache-flags config
reingart Sep 2, 2025
7b25d67
refactor(buildx): log docker build command
reingart Sep 3, 2025
2ead203
fix: ignore incorrectly parsed FROM in tagger #9830
reingart Sep 4, 2025
ce068eb
fix: properly try import missing for local registries
reingart Sep 4, 2025
f7f79be
refactor: fix & debug aids for input digest hashing
reingart Sep 9, 2025
687a7c0
fix #9830: ignore unresolved parsed FROM in tagger
reingart Sep 9, 2025
b31e5cb
refactor #9830: simple artifact dep example
reingart Sep 9, 2025
73d3f8a
ci: manual release exec
reingart Sep 9, 2025
9d03a92
Merge branch 'workaround-hash-tagger-deps' into gh-buildx-cache
reingart Sep 9, 2025
2d1add2
test: fix config UT
reingart Sep 9, 2025
595e4d2
test: fix UT for input digest hash
reingart Sep 9, 2025
25faeef
test: fix UT for docker buildx cache-flags
reingart Sep 9, 2025
cf68bd5
Merge pull request #5 from reingart/gh-buildx-cache
reingart Sep 9, 2025
b7d157a
fix: avoid verify empty container cmd/args
reingart Sep 19, 2025
0f205fd
Merge branch 'fix-verify-containers' into next
reingart Sep 19, 2025
74449f3
Merge pull request #6 from reingart/fix-verify-containers
reingart Sep 19, 2025
28036fb
fix: default registry mirror #7368
reingart Oct 2, 2025
63eada2
ci: generate pre-release on next
reingart Oct 2, 2025
b2427d9
test: fix UT for contex-config
reingart Oct 2, 2025
d52616a
refactor: reduce log-level & print a warn
reingart Oct 2, 2025
781cc1d
Merge branch 'registry-mirror-workaround'
reingart Oct 9, 2025
8e46fc4
ci: fix latest release
reingart Oct 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 117 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: Release Standalone Executables

# Triggers the workflow on push or pull request events
on:
push:
pull_request:
workflow_dispatch:

concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}-${{github.workflow}}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

permissions:
contents: write

jobs:
build-linux:
runs-on: ubuntu-22.04
name: Build Linux Executable
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.24.2
id: go

- name: Build Skaffold from HEAD
run: |
make
echo SKAFFOLD_BINARY=$PWD/out/skaffold >> $GITHUB_ENV
out/skaffold config set --global collect-metrics false
cp out/skaffold skaffold-linux-amd64
sha256sum skaffold-linux-amd64 > skaffold-linux-amd64.sha256

- name: Get Version from Script and save metadata
run: |
VERSION=$($SKAFFOLD_BINARY version)
echo "$VERSION" | tee skaffold.txt

- name: Upload Linux executable
uses: actions/upload-artifact@v4
with:
name: skaffold-linux-amd64
path: |
skaffold-linux-amd64
skaffold-linux-amd64.sha256
skaffold.txt

release:
needs: [build-linux]
runs-on: ubuntu-latest
name: Create Release
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all tags and commit history

- name: Download Linux binary
uses: actions/download-artifact@v4
with:
name: skaffold-linux-amd64
path: release

- name: Get Version from Script metadata
id: get_version
run: |
VERSION=$(cat release/skaffold.txt)
echo "version=$VERSION" >> $GITHUB_ENV

- name: Determine Release Type
id: determine_release
run: |
if git rev-parse "${VERSION}" >/dev/null 2>&1; then
echo "Git tag ${VERSION} already exists. Skipping final release."
echo "final_release=tag" >> $GITHUB_ENV
elif [ "${{ github.ref }}" = "refs/heads/main" ]; then
echo "final_release=latest" >> $GITHUB_ENV
elif [ "${{ github.ref }}" = "refs/heads/next" ]; then
echo "final_release=prep" >> $GITHUB_ENV
else
echo "final_release=draft" >> $GITHUB_ENV
fi
env:
VERSION: ${{ env.version }}

- name: Create GitHub Release
id: publish_release
run: |
if [ "$FINAL_RELEASE" = "latest" ]; then
RELEASE_NAME="${VERSION}"
PUBLISH="--latest"
elif [ "$FINAL_RELEASE" = "tag" ]; then
RELEASE_NAME="${VERSION}"
PUBLISH="--verify-tag"
else
TIMESTAMP=$(date +'%Y%m%d-%H%M%S')
RELEASE_NAME="${VERSION}-${TIMESTAMP}"
if [ "$FINAL_RELEASE" = "draft" ]; then
PUBLISH="--draft"
else
PUBLISH="--prerelease"
fi
fi
gh release create "$RELEASE_NAME" \
--title="Release $RELEASE_NAME" \
--generate-notes \
release/skaffold-linux-amd64 \
release/skaffold-linux-amd64.sha256 \
"$PUBLISH"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ env.version }}
FINAL_RELEASE: ${{ env.final_release }}
2 changes: 1 addition & 1 deletion cmd/skaffold/app/cmd/config/set_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ func TestGetConfigStructWithIndex(t *testing.T) {
description: "survey flag set",
cfg: &config.ContextConfig{},
survey: true,
expectedIdx: []int{7},
expectedIdx: []int{12},
},
{
description: "no survey flag set",
Expand Down
13 changes: 13 additions & 0 deletions docs-v2/content/en/schemas/v4beta13.json
Original file line number Diff line number Diff line change
Expand Up @@ -1766,6 +1766,18 @@
"[\"golang:1.10.1-alpine3.7\", \"alpine:3.7\"]"
]
},
"cacheTo": {
"items": {
"type": "string"
},
"type": "array",
"description": "the Docker images used as cache destination. If omitted, cacheFrom is used with max mode to export all layers.",
"x-intellij-html-description": "the Docker images used as cache destination. If omitted, cacheFrom is used with max mode to export all layers.",
"default": "[]",
"examples": [
"[\"type=registry,ref=gcr.io/k8s-skaffold/example:cache,mode=max\"]"
]
},
"cliFlags": {
"items": {
"type": "string"
Expand Down Expand Up @@ -1830,6 +1842,7 @@
"network",
"addHost",
"cacheFrom",
"cacheTo",
"cliFlags",
"pullParent",
"noCache",
Expand Down
Loading