232 lines
4.4 KiB
YAML
Executable File
232 lines
4.4 KiB
YAML
Executable File
stages:
|
|
- base
|
|
- language
|
|
- tool
|
|
- service
|
|
|
|
variables:
|
|
DOCKER_CERT_PATH: "/shared/docker/client"
|
|
DOCKER_DRIVER: overlay2
|
|
DOCKER_HOST: tcp://localhost:2376
|
|
DOCKER_TLS_CERTDIR: "/shared/docker"
|
|
DOCKER_TLS_VERIFY: 1
|
|
|
|
.build-image: &build-image
|
|
image: docker.artifacts.apextoaster.com/apextoaster/docker:20.10
|
|
services:
|
|
- docker.artifacts.apextoaster.com/apextoaster/docker-dind:20.10
|
|
tags:
|
|
- platform:k8s
|
|
- runner:shared
|
|
allow_failure: false
|
|
|
|
before_script:
|
|
# prep secrets
|
|
- mkdir ${HOME}/.docker
|
|
- echo "${DOCKER_SECRET}" | base64 -d > ${HOME}/.docker/config.json
|
|
- docker info
|
|
script:
|
|
- ./scripts/image-build.sh
|
|
after_script:
|
|
- rm -rfv ${HOME}/.docker
|
|
|
|
image:base:
|
|
<<: *build-image
|
|
stage: base
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- base/*
|
|
variables:
|
|
IMAGE_ROOT: base
|
|
IMAGE_NAME: apextoaster/base
|
|
IMAGE_VERSION: "1.5"
|
|
|
|
# language images
|
|
image:golang:
|
|
<<: *build-image
|
|
stage: language
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- language/golang/*
|
|
variables:
|
|
IMAGE_ROOT: language/golang
|
|
IMAGE_NAME: apextoaster/golang
|
|
IMAGE_VERSION: "1.14"
|
|
|
|
image:node:
|
|
<<: *build-image
|
|
stage: language
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- language/node/*
|
|
variables:
|
|
IMAGE_ROOT: language/node
|
|
IMAGE_NAME: apextoaster/node
|
|
IMAGE_VERSION: "16.19"
|
|
|
|
image:python3:
|
|
<<: *build-image
|
|
stage: language
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- language/python3/*
|
|
variables:
|
|
IMAGE_ROOT: language/python3
|
|
IMAGE_NAME: apextoaster/python3
|
|
IMAGE_VERSION: "3.7"
|
|
|
|
# tool images
|
|
image:ansible:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/ansible/*
|
|
variables:
|
|
IMAGE_ROOT: tool/ansible
|
|
IMAGE_NAME: apextoaster/ansible
|
|
IMAGE_VERSION: "2.7"
|
|
|
|
image:bfg:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/bfg/*
|
|
variables:
|
|
IMAGE_ROOT: tool/bfg
|
|
IMAGE_NAME: apextoaster/bfg
|
|
IMAGE_VERSION: "1.13"
|
|
|
|
image:code-climate:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/code-climate/*
|
|
variables:
|
|
IMAGE_ROOT: tool/code-climate
|
|
IMAGE_NAME: apextoaster/code-climate
|
|
IMAGE_VERSION: "0.6"
|
|
|
|
image:docker:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/docker/*
|
|
variables:
|
|
IMAGE_ROOT: tool/docker
|
|
IMAGE_NAME: apextoaster/docker
|
|
IMAGE_VERSION: "20.10"
|
|
script:
|
|
# embed image-build script
|
|
- cp -rv ./scripts ./${IMAGE_ROOT}/
|
|
- ./scripts/image-build.sh
|
|
|
|
image:hugo:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/hugo/*
|
|
variables:
|
|
IMAGE_ROOT: tool/hugo
|
|
IMAGE_NAME: apextoaster/hugo
|
|
IMAGE_VERSION: "0.110"
|
|
|
|
image:licensed:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/licensed/*
|
|
variables:
|
|
IMAGE_ROOT: tool/licensed
|
|
IMAGE_NAME: apextoaster/licensed
|
|
IMAGE_VERSION: "1.5.2"
|
|
|
|
image:rclone:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/rclone/*
|
|
variables:
|
|
IMAGE_ROOT: tool/rclone
|
|
IMAGE_NAME: apextoaster/rclone
|
|
IMAGE_VERSION: "1.39"
|
|
|
|
image:shellcheck:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/shellcheck/*
|
|
variables:
|
|
IMAGE_ROOT: tool/shellcheck
|
|
IMAGE_NAME: apextoaster/shellcheck
|
|
IMAGE_VERSION: "0.4"
|
|
|
|
image:sonar-scanner:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/sonar-scanner/*
|
|
variables:
|
|
IMAGE_ROOT: tool/sonar-scanner
|
|
IMAGE_NAME: apextoaster/sonar-scanner
|
|
IMAGE_VERSION: "4.4"
|
|
|
|
image:terraform:
|
|
<<: *build-image
|
|
stage: tool
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- tool/terraform/*
|
|
variables:
|
|
IMAGE_ROOT: tool/terraform
|
|
IMAGE_NAME: apextoaster/terraform
|
|
IMAGE_VERSION: "0.11"
|
|
|
|
# service images
|
|
image:docker-dind:
|
|
<<: *build-image
|
|
stage: service
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- service/docker-dind/*
|
|
variables:
|
|
IMAGE_ROOT: service/docker-dind
|
|
IMAGE_NAME: apextoaster/docker-dind
|
|
IMAGE_VERSION: "20.10"
|
|
|
|
image:nexus:
|
|
<<: *build-image
|
|
stage: service
|
|
only:
|
|
changes:
|
|
- .gitlab-ci.yml
|
|
- service/nexus/*
|
|
variables:
|
|
IMAGE_ROOT: service/nexus
|
|
IMAGE_NAME: apextoaster/nexus
|
|
IMAGE_VERSION: "3.46"
|
|
IMAGE_ALT: "ssube/nexus-ext"
|