mirror of
https://github.com/docker/docker-agent.git
synced 2026-11-04 10:02:15 +00:00
Adds templates/Dockerfile and two CI jobs that build and push
docker/sandbox-templates:docker-agent{,-docker} images on main (edge)
and v* tags (versioned + floating).
Assisted-By: claude-sonnet-4-5
138 lines
3.7 KiB
YAML
138 lines
3.7 KiB
YAML
# https://taskfile.dev
|
|
version: "3"
|
|
|
|
vars:
|
|
GIT_TAG:
|
|
sh: echo "${GIT_TAG:-$(git describe --tags --exact-match 2>/dev/null || echo dev)}"
|
|
GIT_COMMIT:
|
|
sh: echo "${GIT_COMMIT:-$(git rev-parse HEAD 2>/dev/null || echo dev)}"
|
|
|
|
env:
|
|
GIT_TAG: "{{.GIT_TAG}}"
|
|
GIT_COMMIT: "{{.GIT_COMMIT}}"
|
|
|
|
tasks:
|
|
default:
|
|
desc: Run lint, test, and build
|
|
aliases: [dev]
|
|
deps: [lint, test, build]
|
|
|
|
build:
|
|
desc: Build the application binary
|
|
aliases: [b]
|
|
sources:
|
|
- "**/*.go"
|
|
- "**/*.template"
|
|
- "**/*.txt"
|
|
- "**/*.yml"
|
|
- "**/*.yaml"
|
|
- go.mod
|
|
- go.sum
|
|
generates:
|
|
- bin/docker-agent
|
|
cmds:
|
|
- ./scripts/build.sh
|
|
|
|
clean:
|
|
desc: Remove the generated binary
|
|
cmds:
|
|
- rm -rf ./bin
|
|
|
|
update-models:
|
|
desc: Refresh the embedded models.dev catalog snapshot
|
|
cmds:
|
|
- go generate ./pkg/modelsdev/...
|
|
|
|
check-models-fresh:
|
|
desc: Fail if the embedded models.dev snapshot is stale (run update-models to refresh)
|
|
cmds:
|
|
- CHECK_MODELS_SNAPSHOT_FRESHNESS=1 go test -run TestSnapshotDateIsFresh ./pkg/modelsdev/
|
|
|
|
deploy-local:
|
|
desc: Deploy the cli-plugin
|
|
aliases: [install]
|
|
deps: [build]
|
|
cmds:
|
|
- mkdir -p "${HOME}/.docker/cli-plugins"
|
|
- /bin/ln -sf "$(pwd)/bin/docker-agent" "${HOME}/.docker/cli-plugins/docker-agent"
|
|
|
|
lint:
|
|
desc: Run the linters
|
|
sources:
|
|
- "**/*.go"
|
|
- .golangci.yml
|
|
- go.mod
|
|
- go.sum
|
|
cmds:
|
|
- GOLANGCI_LINT_CACHE={{.TASKFILE_DIR}}/.cache/lint golangci-lint run
|
|
- go run ./lint .
|
|
- go mod tidy --diff >/dev/null || (echo 'go.mod/go.sum files are not tidy' && exit 1)
|
|
|
|
format:
|
|
desc: Format code
|
|
sources:
|
|
- "**/*.go"
|
|
- .golangci.yml
|
|
cmds:
|
|
- golangci-lint fmt
|
|
|
|
test:
|
|
desc: Run tests
|
|
dotenv: [.env.test]
|
|
cmds:
|
|
- go test ./...
|
|
|
|
test-binary:
|
|
desc: Run tests on build binary
|
|
deps: [deploy-local]
|
|
dotenv: [.env.test]
|
|
cmds:
|
|
- go test -tags=binary_required ./e2e/binary/...
|
|
|
|
build-local:
|
|
desc: Build binaries for local host platform
|
|
cmds:
|
|
- docker build --target=local --build-arg GIT_TAG --build-arg GIT_COMMIT --platform local --output=./dist .
|
|
- |
|
|
if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "cygwin" ]]; then
|
|
mv ./dist/docker-agent ./dist/docker-agent.exe
|
|
fi
|
|
|
|
cross:
|
|
desc: Build binaries for multiple platforms
|
|
cmds:
|
|
- docker buildx build --target=cross --build-arg GIT_TAG --build-arg GIT_COMMIT --platform linux/amd64,linux/arm64,darwin/amd64,darwin/arm64,windows/amd64,windows/arm64 --output=./dist .
|
|
|
|
build-image:
|
|
desc: Build Docker image
|
|
cmds:
|
|
- docker build -t docker/docker-agent --build-arg GIT_TAG --build-arg GIT_COMMIT .
|
|
|
|
push-image:
|
|
desc: Build and Push Docker image
|
|
cmds:
|
|
- docker buildx build --push --platform linux/amd64,linux/arm64 -t docker/docker-agent --build-arg GIT_TAG --build-arg GIT_COMMIT .
|
|
|
|
template:
|
|
desc: Build the sandbox template image with the locally-built binary
|
|
cmds:
|
|
- docker buildx build --load --target=template --build-arg GIT_TAG --build-arg GIT_COMMIT -t docker/docker-agent-sbx-templates .
|
|
|
|
docs-serve:
|
|
desc: Preview the Jekyll documentation site locally
|
|
dir: docs
|
|
cmds:
|
|
- docker build -t docker-agent-docs .
|
|
- docker run --rm -v $(cd .. && pwd)/docs:/srv/jekyll -e JEKYLL_ENV=development -p 4000:4000 docker-agent-docs jekyll serve --host 0.0.0.0 --config _config.yml,_config.dev.yml --livereload
|
|
|
|
docs-check-links:
|
|
desc: Build the documentation site and check for broken links
|
|
dir: docs
|
|
cmds:
|
|
- ../scripts/docs-check-links.sh
|
|
|
|
record-demo:
|
|
desc: Record demo gif
|
|
cmds:
|
|
- vhs ./docs/recordings/demo.tape
|