feat: fast ci

This commit is contained in:
Yoshino-s
2023-06-06 00:39:18 +08:00
parent c276b9549e
commit 706e698fdc
4 changed files with 32 additions and 55 deletions

View File

@@ -1,28 +1,34 @@
---
stages: stages:
- generate - generate
- build
job-generator: variables:
#CI_DEBUG_TRACE: "true"
CACHE_TTL: 2190h0m0s
generate:
stage: generate stage: generate
image: python:3.11-alpine image: python:3.11-alpine
script: script:
- pip install -r requirements.txt - pip install -r requirements.txt
- ./update.py > generated-pipeline.yml - ./update.py > tags.txt
artifacts:
expire_in: 1 hour
paths:
- generated-pipeline.yml
rules:
- if: '$CI_COMMIT_TAG =~ "/^$/"'
update-jobs: build:
stage: generate stage: build
needs: variables:
- job-generator KANIKO_ARGS: "--cache=true --cache-repo $CI_REGISTRY_IMAGE --cache-ttl $CACHE_TTL"
trigger: KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR
include: image:
- artifact: generated-pipeline.yml name: gcr.io/kaniko-project/executor:debug
job: job-generator entrypoint: [""]
strategy: depend script:
rules: - echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- if: '$CI_COMMIT_TAG =~ "/^$/"' - mkdir -p /kaniko/.docker
- |
for tag in $(cat tags.txt); do
export IMAGE_TAG=$CI_REGISTRY_IMAGE:$tag
echo $IMAGE_TAG
DOCKERFILE_PATH=$KANIKO_BUILD_CONTEXT/Dockerfile
sed "s/latest/$tag/g" $DOCKERFILE_PATH > $DOCKERFILE_PATH.tmp
/kaniko/executor --context $KANIKO_BUILD_CONTEXT --dockerfile $DOCKERFILE_PATH.tmp --destination $IMAGE_TAG $KANIKO_ARGS
done

5
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,5 @@
{
"cSpell.words": [
"KANIKO"
]
}

View File

@@ -1,19 +0,0 @@
.kaniko:
variables:
KANIKO_ARGS: ""
VERSION: latest
KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- |
if [ -z ${IMAGE_TAG+x} ]; then
export IMAGE_TAG=$CI_REGISTRY_IMAGE:$VERSION
fi
- echo $IMAGE_TAG
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- DOCKERFILE_PATH=${DOCKERFILE_PATH:-"$KANIKO_BUILD_CONTEXT/Dockerfile"}
- sed -i "s/latest/$VERSION/g" $DOCKERFILE_PATH
- /kaniko/executor --context $KANIKO_BUILD_CONTEXT --dockerfile $DOCKERFILE_PATH --destination $IMAGE_TAG $KANIKO_ARGS

View File

@@ -20,19 +20,4 @@ except:
update_tags = set(tags) - set(local_tags) update_tags = set(tags) - set(local_tags)
print("""\ print(' '.join(update_tags))
include: '/gci-templates/.gitlab-ci.yml'
stages:
- build
""")
for tag in update_tags:
print(f"""\
build-{tag}:
stage: build
extends: .kaniko
variables:
VERSION: {tag}
""")