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:
- generate
- build
job-generator:
variables:
#CI_DEBUG_TRACE: "true"
CACHE_TTL: 2190h0m0s
generate:
stage: generate
image: python:3.11-alpine
script:
- pip install -r requirements.txt
- ./update.py > generated-pipeline.yml
artifacts:
expire_in: 1 hour
paths:
- generated-pipeline.yml
rules:
- if: '$CI_COMMIT_TAG =~ "/^$/"'
- ./update.py > tags.txt
update-jobs:
stage: generate
needs:
- job-generator
trigger:
include:
- artifact: generated-pipeline.yml
job: job-generator
strategy: depend
rules:
- if: '$CI_COMMIT_TAG =~ "/^$/"'
build:
stage: build
variables:
KANIKO_ARGS: "--cache=true --cache-repo $CI_REGISTRY_IMAGE --cache-ttl $CACHE_TTL"
KANIKO_BUILD_CONTEXT: $CI_PROJECT_DIR
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"auth\":\"$(echo -n ${CI_REGISTRY_USER}:${CI_REGISTRY_PASSWORD} | base64 | tr -d '\n')\"}}}" > /kaniko/.docker/config.json
- 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