ci-image-git-buildpackage/.gitlab-ci.yml

73 lines
2.1 KiB
YAML

image: docker:git
services:
- docker:dind
stages:
- build
- test
- release
variables:
TEST_IMAGE: ${CI_REGISTRY_IMAGE}:$CI_BUILD_REF_NAME
RELEASE_IMAGE: ${CI_REGISTRY_IMAGE}:latest
GITLAB_RUNNER_IMAGE: gitlab/gitlab-runner:alpine
before_script:
- echo $CI_BUILD_TOKEN | docker login -u gitlab-ci-token --password-stdin ${CI_REGISTRY}
build:
stage: build
script:
- apk add --no-cache bash
- /bin/bash -n gitlab-ci-git-buildpackage
- echo Building ${RELEASE_IMAGE}
- docker build -t $TEST_IMAGE .
- docker push $TEST_IMAGE
test:
stage: test
variables:
CI_CONFIG_PATH: debian/.gitlab-ci.yml
script:
- echo Testing ${RELEASE_IMAGE}
- docker pull ${GITLAB_RUNNER_IMAGE}
- docker run --rm --interactive
--volume /var/run/docker.sock:/var/run/docker.sock
${GITLAB_RUNNER_IMAGE}
exec docker --help
- git clone https://salsa.debian.org/debian/pidcat.git
- cd pidcat
- printf
"image\x3a ${TEST_IMAGE}\n\ntest:\n script:\n - /gitlab-ci-git-buildpackage\n"
> $CI_CONFIG_PATH
- git add $CI_CONFIG_PATH
- git config user.name $GITLAB_USER_NAME
- git config user.email $GITLAB_USER_EMAIL
- git commit $CI_CONFIG_PATH -m $CI_CONFIG_PATH
- cat $CI_CONFIG_PATH
- docker run --rm --interactive
--volume /var/run/docker.sock:/var/run/docker.sock
--volume $PWD:$PWD --workdir $PWD
--env "CI_CONFIG_PATH=$CI_CONFIG_PATH"
${GITLAB_RUNNER_IMAGE}
exec docker
--docker-volumes "/var/run/docker.sock:/var/run/docker.sock"
--env "HOSTNAME=$HOSTNAME"
--env "CI_PROJECT_NAMESPACE=debian"
--env "CI_PROJECT_NAME=pidcat"
--env "CI_COMMIT_REF_NAME=`git symbolic-ref HEAD --short`"
--env "CI_COMMIT_SHA=`git rev-parse HEAD`"
--env "CI_CONFIG_PATH=$CI_CONFIG_PATH"
test || true
release:
stage: release
script:
- echo Publishing ${RELEASE_IMAGE}
- docker pull $TEST_IMAGE
- docker tag $TEST_IMAGE $RELEASE_IMAGE
- docker push $RELEASE_IMAGE
only:
- master
- tags