-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.justfile
57 lines (48 loc) · 2.45 KB
/
.justfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# https://just.systems/man/en/
set fallback := true
set unstable := true
set script-interpreter := ["bash", "-eu"]
REGISTRY_IMAGE := "docker.io/library/registry:2.8.3"
REGISTRY_NAME := "kaniko-registry"
REGISTRY_PORT := "5001"
IMAGE := replace("localhost:_/markdownlint", '_', REGISTRY_PORT)
[private]
@default:
just --list --unsorted
# Run linter.
@lint:
docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/shellcheck
docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/hadolint
docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/yamllint
docker run --rm --read-only --volume=$(pwd):$(pwd):rw --workdir=$(pwd) kokuwaio/markdownlint --fix
docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) kokuwaio/renovate-config-validator
# Build using local repository as cache.
@build: registry-up
docker run --rm --net=host --volume=$(pwd):/workspace:ro gcr.io/kaniko-project/executor:v1.23.2 --context=/workspace --destination={{IMAGE}}
# Run image against local repository.
run: registry-up
docker pull {{IMAGE}} >/dev/null
docker run --rm --read-only --volume=$(pwd):$(pwd):ro --workdir=$(pwd) {{IMAGE}}
# Inspect image layers with `dive`.
@dive: registry-up
docker pull {{IMAGE}} >/dev/null
docker run --rm -it --volume=/var/run/docker.sock:/var/run/docker.sock:ro wagoodman/dive:latest {{IMAGE}}
# Build with local docker daemon.
docker: registry-up
docker buildx build . --load --quiet --tag={{IMAGE}}:amd64 --platform=linux/amd64
docker buildx build . --load --quiet --tag={{IMAGE}}:arm64 --platform=linux/arm64
docker push {{IMAGE}} --all-tags --quiet
docker manifest rm {{IMAGE}} || true
docker manifest create {{IMAGE}} --insecure --amend {{IMAGE}}:amd64 --amend {{IMAGE}}:arm64
docker manifest inspect {{IMAGE}} --verbose
docker manifest push {{IMAGE}} --purge
docker pull {{IMAGE}}
docker image inspect {{IMAGE}}
docker run --rm --read-only --env=CI=1 --volume=$(pwd):$(pwd):ro --workdir=$(pwd) {{IMAGE}}
# Start local image registry at `http://localhost:{{REGISTRY_PORT}}`.
@registry-up:
docker volume create {{REGISTRY_NAME}} >/dev/null
docker ps --format '{{{{.Names}}' | grep {{REGISTRY_NAME}} >/dev/null || docker run --quiet --detach --volume={{REGISTRY_NAME}}:/var/lib/registry --publish={{REGISTRY_PORT}}:5000 --name={{REGISTRY_NAME}} {{REGISTRY_IMAGE}} >/dev/null
# Shutdown local image registry.
@registry-down:
docker rm {{REGISTRY_NAME}} --force >/dev/null 2>&1