diff options
| author | mo khan <mo.khan@gmail.com> | 2020-06-16 15:48:26 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-06-16 15:48:26 -0600 |
| commit | ec285858c22890a63b6f5a50d5dbed3da7eb3919 (patch) | |
| tree | 5a27449cd1e4a40a10eb97cf9f293212c4390641 | |
| parent | 9a9149ebfae6fc6e1488bc281396b2c8cd544487 (diff) | |
Build and publish .deb artifacts
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | .gitlab-ci.yml | 24 | ||||
| -rw-r--r-- | Dockerfile | 26 | ||||
| -rw-r--r-- | Gemfile | 5 | ||||
| -rwxr-xr-x | bin/docker-build | 13 | ||||
| -rwxr-xr-x | bin/docker-shell | 12 |
6 files changed, 75 insertions, 6 deletions
@@ -5,6 +5,5 @@ vendor/bundle pkg/* .vagrant -bin/* files/**/cache/ vendor/cookbooks diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..3fc754e --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,24 @@ +stages: + - build + - release + +variables: + TMP_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA + +build-docker-image: + image: docker:stable + stage: build + services: + - docker:stable-dind + script: + - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY + - docker build -t $TMP_IMAGE . + - docker push $TMP_IMAGE + +release-deb: + image: $TMP_IMAGE + stage: release + artifacts: + paths: + - /opt/asdf + expire_in: 1 week diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..84cf360 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,26 @@ +FROM debian:stable-slim +COPY . /root/omnibus +WORKDIR /root/omnibus +RUN apt-get update -q \ + && apt-get install -y --no-install-recommends \ + autoconf \ + bison \ + build-essential \ + ca-certificates \ + fakeroot \ + git \ + libdb-dev \ + libffi-dev \ + libgdbm-dev \ + libgdbm6 \ + libncurses5-dev \ + libreadline6-dev \ + libssl-dev \ + libyaml-dev \ + ruby \ + ruby-dev \ + zlib1g-dev \ + && gem install bundler \ + && bundle install \ + && omnibus build asdf \ + && echo 'done' @@ -12,10 +12,5 @@ gem 'omnibus', '~> 7.0' # the Test Kitchen-based build lab. You can skip these unnecessary dependencies # by running `bundle install --without development` to speed up build times. group :development do - # Use Berkshelf for resolving cookbook dependencies gem 'berkshelf' - - # Use Test Kitchen with Vagrant for converging the build environment - gem 'test-kitchen' - gem 'kitchen-vagrant' end diff --git a/bin/docker-build b/bin/docker-build new file mode 100755 index 0000000..2cd819f --- /dev/null +++ b/bin/docker-build @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +cd "$(dirname "$0")/.." + +if command -v docker; then + IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest} + docker build --network=host -t "$IMAGE_NAME" . +else + echo "Install docker: https://docs.docker.com/engine/installation/" + exit 1 +fi diff --git a/bin/docker-shell b/bin/docker-shell new file mode 100755 index 0000000..84576f3 --- /dev/null +++ b/bin/docker-shell @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +cd "$(dirname "$0")/.." + +IMAGE_NAME=${IMAGE_NAME:-$(basename "$PWD"):latest} + +docker run --rm -it \ + --network=host \ + --volume "$PWD":/root/license-management \ + "$IMAGE_NAME" /bin/bash -l |
