46 lines
981 B
YAML
46 lines
981 B
YAML
stages:
|
|
- generate
|
|
- build
|
|
|
|
variables:
|
|
#CI_DEBUG_TRACE: "true"
|
|
CACHE_TTL: 2190h0m0s
|
|
|
|
generate:
|
|
stage: generate
|
|
image: python:3.11-alpine
|
|
script:
|
|
- pip install -r requirements.txt
|
|
- ./update.py > tags.txt
|
|
artifacts:
|
|
expire_in: 1 hour
|
|
paths:
|
|
- tags.txt
|
|
|
|
|
|
build:
|
|
needs:
|
|
- job: generate
|
|
artifacts: true
|
|
image: docker:latest
|
|
stage: build
|
|
services:
|
|
- docker:dind
|
|
variables:
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_TLS_VERIFY: 1
|
|
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
|
|
before_script:
|
|
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
|
|
- docker info
|
|
script:
|
|
- |
|
|
for tag in $(cat tags.txt); do
|
|
export IMAGE_TAG=$CI_REGISTRY_IMAGE:$tag
|
|
echo $IMAGE_TAG
|
|
sed "s/latest/$tag/g" Dockerfile > Dockerfile.tmp
|
|
docker build . --pull -f Dockerfile.tmp -t $IMAGE_TAG
|
|
docker push $IMAGE_TAG
|
|
done
|