27 Commits
v0.2 ... v0.7.0

Author SHA1 Message Date
Alex Viscreanu
dc591110cc fix: update github container registry host 2022-02-21 15:21:10 +01:00
Julien Semaan
8e9a423400 fix: tag with latest only when its config is true 2022-01-24 10:46:25 +01:00
Alex Viscreanu
f16a14fc0f fix(ci): fetch all necessary commits for commitsar and release notary 2022-01-24 10:45:57 +01:00
Renovate Bot
8bd3e02fd2 chore(deps): update actions/checkout action to v2 2022-01-24 10:13:55 +01:00
Renovate Bot
571e42aef3 chore(deps): update aevea/release-notary docker digest to 8b26ced 2022-01-24 10:11:09 +01:00
Renovate Bot
e846d42497 chore(deps): update aevea/commitsar docker digest to b77adeb 2022-01-24 10:04:50 +01:00
Renovate Bot
b7f0f661e3 chore(deps): update aevea/release-notary docker digest to fad8346 2022-01-24 10:04:40 +01:00
Dmitry Tsoy
7033a0543d fix: long base64 string may contain new-line
if the base64 string has more than 76 characters, it is wrapped with \n
2022-01-24 10:03:08 +01:00
Doron Somech
e03153c634 fix: don't push image when skip_unchanged_digest is set
Kaniko default behavior changed, `--tarPath` alone is not enough to skip the push to registry, `--no-push` is now required as well.

Reference:
GoogleContainerTools/kaniko#1503
2021-09-21 11:52:28 +02:00
Alex Viscreanu
49888d43ab fix(build): delete crane tarfile using absolute path 2021-02-17 10:54:13 +01:00
Renovate Bot
418284a2f2 chore(deps): update aevea/commitsar docker digest to caf5539 2020-09-14 11:17:39 +02:00
Renovate Bot
5be93ca286 chore(deps): pin docker digests 2020-09-04 11:49:49 +02:00
Doron Somech
5e25ae9c63 refactor: Use google/go-containerregistry to push image 2020-08-05 17:53:40 +02:00
Alex
6030da03d4 fix: Force kaniko to run on GitHub action's environment 2020-07-15 19:03:56 +02:00
Doron Somech
daf41b1e54 feat: Add target option 2020-06-22 08:19:55 +02:00
Doron Somech
79ed56ad90 feat: Add tag_with_latest option for tagging with latest additionally
When skipping the push on unchanged digests, it's not enough to push the current tag,
which is probably semver, we also need to push the latest, so we can later check if
the latest digest equals the currently built image
2020-06-22 08:18:11 +02:00
Doron Somech
94f437184e feat: Allow custom context path 2020-06-22 08:17:58 +02:00
Doron Somech
51211d4483 fix(digest): Add support for GitHub's docker registry
Github registry doesn't support digest yet, we need to download the manifest
and calculate the digest manually

Also fixing a few other issues:
 * Multi-stage dockerfiles override /usr/local/lib, moved jq and reg to /kaniko instead
 * The digest was fetched for the current tag, which doesn't exist yet. Fetching digest for the latest tag instead
2020-06-22 08:14:46 +02:00
Alex Viscreanu
57d6d22cdf chore: Push on first build if skip_unchanged_digest isn't set 2020-06-19 14:10:56 +02:00
Alex Viscreanu
3b9302effb feat: Add option for skip pushing if the digest hasn't changed 2020-06-19 14:10:56 +02:00
Alex Viscreanu
c076596480 chore: Add Makefile for easier development 2020-06-19 13:18:55 +02:00
Alex Viscreanu
edea218783 chore: Rename function to ensure variables being set 2020-06-19 13:14:45 +02:00
Simon Prochazka
73a7639472 chore: Rename organization to aevea 2020-04-26 18:43:20 +02:00
Remon Oldenbeuving
3e63daf6fe fix: Ensure lowercase GitHub image namespace 2020-04-08 09:14:03 +02:00
Renovate Bot
e13fbcb36b chore(deps): add renovate.json 2020-03-15 00:06:57 +01:00
Alex Viscreanu
6c131bc4a8 feat: Allow stripping tag prefixes 2020-02-24 22:11:13 +01:00
Alex Viscreanu
4a68ad0e14 fix: Strip refs/tags string from github ref 2020-02-17 00:11:52 +01:00
10 changed files with 198 additions and 55 deletions

View File

@@ -1,3 +1,3 @@
* *
!entrypoint.sh !entrypoint.sh
.env*

View File

@@ -6,6 +6,8 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Verify commit messages name: Verify commit messages
steps: steps:
- uses: actions/checkout@v1 - uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run commitsar - name: Run commitsar
uses: docker://commitsar/commitsar uses: docker://aevea/commitsar@sha256:b77adebc0437d4f2bfdf9205a39003e88acbc77a9176fd086b386207a5f3f5cb

View File

@@ -9,7 +9,7 @@ jobs:
- uses: actions/checkout@master - uses: actions/checkout@master
- name: GitHub Package Registry - name: GitHub Package Registry
uses: outillage/kaniko-action@master uses: aevea/action-kaniko@master
with: with:
registry: docker.pkg.github.com registry: docker.pkg.github.com
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
@@ -18,10 +18,10 @@ jobs:
cache_registry: cache cache_registry: cache
- name: Dockerhub - name: Dockerhub
uses: outillage/kaniko-action@master uses: aevea/action-kaniko@master
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
image: outillage/kaniko image: aevea/kaniko
cache: true cache: true
cache_registry: outillage/cache cache_registry: aevea/cache

View File

@@ -10,15 +10,17 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Check out code - name: Check out code
uses: actions/checkout@v1 uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Release Notary Action - name: Release Notary Action
uses: docker://commitsar/release-notary uses: docker://aevea/release-notary@sha256:8b26ced466da96b23a947d5c9e58baac22ee1192fd08200011e5b178f42118a0
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: GitHub Package Registry - name: GitHub Package Registry
uses: outillage/kaniko-action@master uses: aevea/action-kaniko@master
with: with:
registry: docker.pkg.github.com registry: docker.pkg.github.com
password: ${{ secrets.GITHUB_TOKEN }} password: ${{ secrets.GITHUB_TOKEN }}
@@ -27,10 +29,10 @@ jobs:
cache_registry: cache cache_registry: cache
- name: Dockerhub - name: Dockerhub
uses: outillage/kaniko-action@master uses: aevea/action-kaniko@master
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
image: outillage/kaniko image: aevea/kaniko
cache: true cache: true
cache_registry: outillage/cache cache_registry: aevea/cache

View File

@@ -1,8 +1,26 @@
FROM alpine as certs
RUN apk --update add ca-certificates
FROM gcr.io/kaniko-project/executor:debug FROM gcr.io/kaniko-project/executor:debug
SHELL ["/busybox/sh", "-c"]
RUN wget -O /kaniko/jq \
https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 && \
chmod +x /kaniko/jq && \
wget -O /kaniko/reg \
https://github.com/genuinetools/reg/releases/download/v0.16.1/reg-linux-386 && \
chmod +x /kaniko/reg && \
wget -O /crane.tar.gz \
https://github.com/google/go-containerregistry/releases/download/v0.1.1/go-containerregistry_Linux_x86_64.tar.gz && \
tar -xvzf /crane.tar.gz crane -C /kaniko && \
rm /crane.tar.gz
COPY entrypoint.sh / COPY entrypoint.sh /
COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
ENTRYPOINT ["/entrypoint.sh"] ENTRYPOINT ["/entrypoint.sh"]
LABEL repository="https://github.com/outillage/action-kaniko" \ LABEL repository="https://github.com/aevea/action-kaniko" \
maintainer="Alex Viscreanu <alexviscreanu@gmail.com>" maintainer="Alex Viscreanu <alexviscreanu@gmail.com>"

24
Makefile Normal file
View File

@@ -0,0 +1,24 @@
build:
docker build -t aevea/kaniko .
run: build
docker run \
-v $(shell pwd):/tmp \
-e GITHUB_REPOSITORY \
-e GITHUB_REF \
-e GITHUB_ACTOR \
-e GITHUB_TOKEN \
-e GITHUB_WORKSPACE="/tmp" \
-e INPUT_IMAGE \
-e INPUT_CACHE \
-e INPUT_CACHE_TTL \
-e INPUT_CACHE_REGISTRY \
-e INPUT_STRIP_TAG_PREFIX \
-e INPUT_SKIP_UNCHANGED_DIGEST \
aevea/kaniko
shell: build
docker run \
-ti \
--entrypoint sh \
aevea/kaniko

View File

@@ -19,13 +19,13 @@ jobs:
steps: steps:
- uses: actions/checkout@master - uses: actions/checkout@master
- name: Kaniko build - name: Kaniko build
uses: outillage/kaniko-action@master uses: aevea/action-kaniko@master
with: with:
image: outillage/kaniko image: aevea/kaniko
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: true cache: true
cache_registry: outillage/cache cache_registry: aevea/cache
``` ```
## Required Arguments ## Required Arguments
@@ -33,24 +33,29 @@ jobs:
This action aims to be as flexible as possible, so it tries to define the defaults as for what I thought of being This action aims to be as flexible as possible, so it tries to define the defaults as for what I thought of being
the most used values. So, technically there is a single required argument the most used values. So, technically there is a single required argument
| variable | description | required | default | | variable | description | required | default |
|-----------------|----------------------------------------------------------|----------|-----------------------------| |------------------|----------------------------------------------------------|----------|-----------------------------|
| image | Name of the image you would like to push | true | | | image | Name of the image you would like to push | true | |
## Optional Arguments ## Optional Arguments
| variable | description | required | default | | variable | description | required | default |
|-----------------|----------------------------------------------------------|----------|-----------------------------| |-----------------------|-----------------------------------------------------------------|----------|-----------------|
| registry | Docker registry where the image will be pushed | false | docker.io | | registry | Docker registry where the image will be pushed | false | docker.io |
| username | Username used for authentication to the Docker registry | false | $GITHUB_ACTOR | | username | Username used for authentication to the Docker registry | false | $GITHUB_ACTOR |
| password | Password used for authentication to the Docker registry | false | | | password | Password used for authentication to the Docker registry | false | |
| tag | Image tag | false | latest | | tag | Image tag | false | latest |
| cache | Enables build cache | false | false | | cache | Enables build cache | false | false |
| cache_ttl | How long the cache should be considered valid | false | | | cache_ttl | How long the cache should be considered valid | false | |
| cache_registry | Docker registry meant to be used as cache | false | | | cache_registry | Docker registry meant to be used as cache | false | |
| cache_directory | Filesystem path meant to be used as cache | false | | | cache_directory | Filesystem path meant to be used as cache | false | |
| build_file | Dockerfile filename | false | Dockerfile | | build_file | Dockerfile filename | false | Dockerfile |
| extra_args | Additional arguments to be passed to the kaniko executor | false | | | extra_args | Additional arguments to be passed to the kaniko executor | false | |
| strip_tag_prefix | Prefix to be stripped from the tag | false | |
| skip_unchanged_digest | Avoids pushing the image if the build generated the same digest | false | |
| path | Path to the build context. Defaults to `.` | false | . |
| tag_with_latest | Tags the built image with additional latest tag | false | |
| target | Sets the target stage to build | false | |
**Here is where it gets specific, as the optional arguments become required depending on the registry targeted** **Here is where it gets specific, as the optional arguments become required depending on the registry targeted**
@@ -61,7 +66,7 @@ In this case, the authentication credentials need to be passed via GitHub Action
```yaml ```yaml
with: with:
image: outillage/kaniko image: aevea/kaniko
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
``` ```
@@ -71,17 +76,17 @@ doesn't work. If you want to use caching with Dockerhub, create a `cache` reposi
```yaml ```yaml
with: with:
image: outillage/kaniko image: aevea/kaniko
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }} password: ${{ secrets.DOCKERHUB_PASSWORD }}
cache: true cache: true
cache_registry: outillage/cache cache_registry: aevea/cache
``` ```
### [docker.pkg.github.com](https://github.com/features/packages) ### [docker.pkg.github.com](https://github.com/features/packages)
GitHub's docker registry is a bit special. It doesn't allow top-level images, so this action will prefix any image with the GitHub namespace. GitHub's docker registry is a bit special. It doesn't allow top-level images, so this action will prefix any image with the GitHub namespace.
If you want to push your image like `outillage/kaniko-action/kaniko`, you'll only need to pass `kaniko` to this action. If you want to push your image like `aevea/action-kaniko/kaniko`, you'll only need to pass `kaniko` to this action.
The authentication is automatically done using the `GITHUB_ACTOR` and `GITHUB_TOKEN` provided from GitHub itself. But as `GITHUB_TOKEN` is not The authentication is automatically done using the `GITHUB_ACTOR` and `GITHUB_TOKEN` provided from GitHub itself. But as `GITHUB_TOKEN` is not
passed by default, it will have to be explicitly set up. passed by default, it will have to be explicitly set up.
@@ -124,7 +129,7 @@ with:
registry: registry.gitlab.com registry: registry.gitlab.com
username: ${{ secrets.GL_REGISTRY_USERNAME }} username: ${{ secrets.GL_REGISTRY_USERNAME }}
password: ${{ secrets.GL_REGISTRY_PASSWORD }} password: ${{ secrets.GL_REGISTRY_PASSWORD }}
image: outillage/kaniko image: aevea/kaniko
``` ```
> NOTE: As GitLab's registry does support namespacing, Kaniko can natively push cached layers to it, so only `cache: true` is necessary to be > NOTE: As GitLab's registry does support namespacing, Kaniko can natively push cached layers to it, so only `cache: true` is necessary to be
@@ -135,7 +140,7 @@ with:
registry: registry.gitlab.com registry: registry.gitlab.com
username: ${{ secrets.GL_REGISTRY_USERNAME }} username: ${{ secrets.GL_REGISTRY_USERNAME }}
password: ${{ secrets.GL_REGISTRY_PASSWORD }} password: ${{ secrets.GL_REGISTRY_PASSWORD }}
image: outillage/kaniko image: aevea/kaniko
cache: true cache: true
``` ```
@@ -154,3 +159,18 @@ If you would like to publish the image to other registries, these actions might
The `tag` argument, **unless overridden**, is automatically guessed based on the branch name. If the branch is `master` then the tag will The `tag` argument, **unless overridden**, is automatically guessed based on the branch name. If the branch is `master` then the tag will
be `latest`, otherwise it will keep the branch name, but replacing any forward slash (/) with a hyphen (-). be `latest`, otherwise it will keep the branch name, but replacing any forward slash (/) with a hyphen (-).
If the `v` prefix that it's usually added to the GitHub releases is not desired when pushed to dockerhub, the `strip_tag_prefix` allows to
specify which part of the tag should be removed.
Example:
```yaml
with:
registry: docker.pkg.github.com
password: ${{ secrets.GITHUB_TOKEN }}
image: kaniko
strip_tag_prefix: pre-
```
for the tag `pre-0.1` will push `kaniko:0.1`, as the `pre-` part will be stripped from the tag name.

View File

@@ -5,6 +5,10 @@ branding:
icon: anchor icon: anchor
color: orange color: orange
inputs: inputs:
path:
description: Path to the build context
required: false
default: "."
registry: registry:
description: "Docker registry where the image will be pushed" description: "Docker registry where the image will be pushed"
required: false required: false
@@ -35,9 +39,21 @@ inputs:
build_file: build_file:
description: "Dockerfile filename" description: "Dockerfile filename"
required: false required: false
strip_tag_prefix:
description: "Prefix to be stripped from the tag"
required: false
extra_args: extra_args:
description: "Additional arguments to be passed to the kaniko executor" description: "Additional arguments to be passed to the kaniko executor"
required: false required: false
skip_unchanged_digest:
description: "Avoids pushing the image if the build generated the same digest"
required: false
tag_with_latest:
description: "Tags the built image with additional latest tag"
required: false
target:
description: Sets the target stage to build
required: false
runs: runs:
using: "docker" using: "docker"
image: "Dockerfile" image: "Dockerfile"

View File

@@ -3,31 +3,45 @@ set -e pipefail
export REGISTRY=${INPUT_REGISTRY:-"docker.io"} export REGISTRY=${INPUT_REGISTRY:-"docker.io"}
export IMAGE=${INPUT_IMAGE} export IMAGE=${INPUT_IMAGE}
export BRANCH=$(echo ${GITHUB_REF} | sed -e "s/refs\/heads\///g" | sed -e "s/\//-/g") export BRANCH=$(echo ${GITHUB_REF} | sed -E "s/refs\/(heads|tags)\///g" | sed -e "s/\//-/g")
export TAG=${INPUT_TAG:-$([ "$BRANCH" == "master" ] && echo latest || echo $BRANCH)} export TAG=${INPUT_TAG:-$([ "$BRANCH" == "master" ] && echo latest || echo $BRANCH)}
export TAG=${TAG:-"latest"} export TAG=${TAG:-"latest"}
export TAG=${TAG#$INPUT_STRIP_TAG_PREFIX}
export USERNAME=${INPUT_USERNAME:-$GITHUB_ACTOR} export USERNAME=${INPUT_USERNAME:-$GITHUB_ACTOR}
export PASSWORD=${INPUT_PASSWORD:-$GITHUB_TOKEN} export PASSWORD=${INPUT_PASSWORD:-$GITHUB_TOKEN}
export REPOSITORY=$IMAGE
export IMAGE=$IMAGE:$TAG export IMAGE=$IMAGE:$TAG
export CONTEXT_PATH=${INPUT_PATH}
function sanitize() { if [[ "$INPUT_TAG_WITH_LATEST" == "true" ]]; then
export IMAGE_LATEST="$IMAGE:latest"
fi
function ensure() {
if [ -z "${1}" ]; then if [ -z "${1}" ]; then
echo >&2 "Unable to find the ${2}. Did you set with.${2}?" echo >&2 "Unable to find the ${2} variable. Did you set with.${2}?"
exit 1 exit 1
fi fi
} }
sanitize "${REGISTRY}" "registry" ensure "${REGISTRY}" "registry"
sanitize "${USERNAME}" "username" ensure "${USERNAME}" "username"
sanitize "${PASSWORD}" "password" ensure "${PASSWORD}" "password"
sanitize "${IMAGE}" "image" ensure "${IMAGE}" "image"
sanitize "${TAG}" "tag" ensure "${TAG}" "tag"
ensure "${CONTEXT_PATH}" "path"
if [ "$REGISTRY" == "docker.pkg.github.com" ]; then if [ "$REGISTRY" == "ghcr.io" ]; then
export IMAGE="$GITHUB_REPOSITORY/$IMAGE" IMAGE_NAMESPACE="$(echo $GITHUB_REPOSITORY | tr '[:upper:]' '[:lower:]')"
export IMAGE="$IMAGE_NAMESPACE/$IMAGE"
export REPOSITORY="$IMAGE_NAMESPACE/$REPOSITORY"
if [ ! -z $IMAGE_LATEST ]; then
export IMAGE_LATEST="$IMAGE_NAMESPACE/$IMAGE_LATEST"
fi
if [ ! -z $INPUT_CACHE_REGISTRY ]; then if [ ! -z $INPUT_CACHE_REGISTRY ]; then
export INPUT_CACHE_REGISTRY="$REGISTRY/$GITHUB_REPOSITORY/$INPUT_CACHE_REGISTRY" export INPUT_CACHE_REGISTRY="$REGISTRY/$IMAGE_NAMESPACE/$INPUT_CACHE_REGISTRY"
fi fi
fi fi
@@ -35,18 +49,30 @@ if [ "$REGISTRY" == "docker.io" ]; then
export REGISTRY="index.${REGISTRY}/v1/" export REGISTRY="index.${REGISTRY}/v1/"
else else
export IMAGE="$REGISTRY/$IMAGE" export IMAGE="$REGISTRY/$IMAGE"
if [ ! -z $IMAGE_LATEST ]; then
export IMAGE_LATEST="$REGISTRY/$IMAGE_LATEST"
fi
fi fi
export CACHE=${INPUT_CACHE:+"--cache=true"} export CACHE=${INPUT_CACHE:+"--cache=true"}
export CACHE=$CACHE${INPUT_CACHE_TTL:+" --cache-ttl=$INPUT_CACHE_TTL"} export CACHE=$CACHE${INPUT_CACHE_TTL:+" --cache-ttl=$INPUT_CACHE_TTL"}
export CACHE=$CACHE${INPUT_CACHE_REGISTRY:+" --cache-repo=$INPUT_CACHE_REGISTRY"} export CACHE=$CACHE${INPUT_CACHE_REGISTRY:+" --cache-repo=$INPUT_CACHE_REGISTRY"}
export CACHE=$CACHE${INPUT_CACHE_DIRECTORY:+" --cache-dir=$INPUT_CACHE_DIRECTORY"} export CACHE=$CACHE${INPUT_CACHE_DIRECTORY:+" --cache-dir=$INPUT_CACHE_DIRECTORY"}
export CONTEXT="--context $GITHUB_WORKSPACE" export CONTEXT="--context $GITHUB_WORKSPACE/$CONTEXT_PATH"
export DOCKERFILE="--dockerfile ${INPUT_BUILD_FILE:-Dockerfile}" export DOCKERFILE="--dockerfile $CONTEXT_PATH/${INPUT_BUILD_FILE:-Dockerfile}"
export DESTINATION="--destination $IMAGE" export TARGET=${INPUT_TARGET:+"--target=$INPUT_TARGET"}
export ARGS="$CACHE $CONTEXT $DOCKERFILE $DESTINATION $INPUT_EXTRA_ARGS" if [ ! -z $INPUT_SKIP_UNCHANGED_DIGEST ]; then
echo $ARGS export DESTINATION="--digest-file digest --no-push --tarPath image.tar --destination $IMAGE"
else
export DESTINATION="--destination $IMAGE"
if [ ! -z $IMAGE_LATEST ]; then
export DESTINATION="$DESTINATION --destination $IMAGE_LATEST"
fi
fi
export ARGS="$CACHE $CONTEXT $DOCKERFILE $TARGET $DESTINATION $INPUT_EXTRA_ARGS"
cat <<EOF >/kaniko/.docker/config.json cat <<EOF >/kaniko/.docker/config.json
{ {
@@ -59,4 +85,34 @@ cat <<EOF >/kaniko/.docker/config.json
} }
EOF EOF
/kaniko/executor $ARGS # https://github.com/GoogleContainerTools/kaniko/issues/1349
/kaniko/executor --reproducible --force $ARGS
if [ ! -z $INPUT_SKIP_UNCHANGED_DIGEST ]; then
export DIGEST=$(cat digest)
if [ "$REGISTRY" == "ghcr.io" ]; then
wget -q -O manifest --header "Authorization: Basic $(echo -n $USERNAME:$PASSWORD | base64 | tr -d \\n)" https://ghcr.io/v2/$REPOSITORY/manifests/latest || true
export REMOTE="sha256:$(cat manifest | sha256sum | awk '{ print $1 }')"
else
export REMOTE=$(reg digest -u $USERNAME -p $PASSWORD $REGISTRY/$REPOSITORY | tail -1)
fi
if [ "$DIGEST" == "$REMOTE" ]; then
echo "Digest hasn't changed, skipping, $DIGEST"
echo "Done 🎉️"
exit 0
fi
echo "Pushing image..."
/kaniko/crane auth login $REGISTRY -u $USERNAME -p $PASSWORD
/kaniko/crane push image.tar $IMAGE
if [ ! -z $IMAGE_LATEST ]; then
echo "Tagging latest..."
/kaniko/crane tag $IMAGE latest
fi
echo "Done 🎉️"
fi

5
renovate.json Normal file
View File

@@ -0,0 +1,5 @@
{
"extends": [
"config:base"
]
}