summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-06-16 15:48:26 -0600
committermo khan <mo.khan@gmail.com>2020-06-16 15:48:26 -0600
commitec285858c22890a63b6f5a50d5dbed3da7eb3919 (patch)
tree5a27449cd1e4a40a10eb97cf9f293212c4390641
parent9a9149ebfae6fc6e1488bc281396b2c8cd544487 (diff)
Build and publish .deb artifacts
-rw-r--r--.gitignore1
-rw-r--r--.gitlab-ci.yml24
-rw-r--r--Dockerfile26
-rw-r--r--Gemfile5
-rwxr-xr-xbin/docker-build13
-rwxr-xr-xbin/docker-shell12
6 files changed, 75 insertions, 6 deletions
diff --git a/.gitignore b/.gitignore
index cd0f4a1..f34516c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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'
diff --git a/Gemfile b/Gemfile
index f2823df..0f90c00 100644
--- a/Gemfile
+++ b/Gemfile
@@ -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