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

60 lines
1.7 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 overlay/usr/share/gitlab-ci-common overlay/usr/bin/gitlab-ci-*
- echo Building ${RELEASE_IMAGE}
- docker build -t $TEST_IMAGE .
- docker push $TEST_IMAGE
test:
stage: test
script:
- echo Testing ${TEST_IMAGE}
- git clone https://git.devuan.org/cyteen/bluealsa.git
- cd pidcat
- printf
"image\x3a ${TEST_IMAGE}\n\ntest:\n script:\n - git remote set-url origin https://git.devuan.org/cyteen/bluealsa.git\n - /usr/bin/gitlab-ci-git-buildpackage\n"
> .gitlab-ci.yml
- docker pull ${TEST_IMAGE}
- docker run --rm --interactive
--volume /var/run/docker.sock:/var/run/docker.sock
--volume $PWD:$PWD --workdir $PWD
${GITLAB_RUNNER_IMAGE}
exec docker
--docker-volumes "/var/run/docker.sock:/var/run/docker.sock"
--env "HOSTNAME=$HOSTNAME"
--env "CI_PROJECT_NAMESPACE=devuan"
--env "CI_PROJECT_NAME=bluealsa"
--env "CI_COMMIT_REF_NAME=`git symbolic-ref HEAD --short`"
--env "CI_COMMIT_SHA=`git rev-parse HEAD`"
test
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