summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-04-20 22:25:22 -0600
committermo khan <mo.khan@gmail.com>2020-04-20 22:25:22 -0600
commit83ac7915f00d120f09db42ca60316dc745c73cc9 (patch)
tree28fde141fdc7ab2ef6e3a5611d074785c0459d53
parent685f2f5b80222d6b7079c59bfd5b1c5df0e0337e (diff)
Build minimal image
-rw-r--r--.gitlab-ci.yml26
-rw-r--r--.gitlab/test.yml36
-rw-r--r--Dockerfile5
-rw-r--r--Gemfile.lock3
-rw-r--r--config/install.sh6
-rw-r--r--spandx-gitlab.gemspec3
6 files changed, 74 insertions, 5 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..e53243c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,26 @@
+variables:
+ TMP_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
+
+include:
+ - local: .gitlab/test.yml
+
+stages:
+ - build
+ - test
+ - tag
+ - release
+
+default:
+ image: $TMP_IMAGE
+
+build commit:
+ image: docker:stable
+ stage: build
+ services:
+ - docker:stable-dind
+ script:
+ - docker info
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - docker build -t $TMP_IMAGE .
+ - docker image inspect $TMP_IMAGE --format='{{.Size}}'
+ - docker push $TMP_IMAGE
diff --git a/.gitlab/test.yml b/.gitlab/test.yml
new file mode 100644
index 0000000..c7adf56
--- /dev/null
+++ b/.gitlab/test.yml
@@ -0,0 +1,36 @@
+lint:
+ stage: test
+ image: ruby:alpine
+ script:
+ - apk add build-base shellcheck
+ - bin/setup
+ - bin/lint
+
+.rspec:
+ stage: test
+ script:
+ - bash -lc './bin/test $RSPEC_DIR --format RspecJunitFormatter --out rspec.xml'
+ variables:
+ BUNDLE_JOBS: '2'
+ BUNDLE_PATH: 'vendor/bundle'
+ GIT_DEPTH: "1"
+ GIT_STRATEGY: fetch
+ cache:
+ key: ${CI_COMMIT_REF_SLUG}
+ paths:
+ - vendor
+ artifacts:
+ paths:
+ - rspec.xml
+ reports:
+ junit: rspec.xml
+
+unit:
+ extends: .rspec
+ variables:
+ RSPEC_DIR: spec/unit
+
+integration:
+ extends: .rspec
+ variables:
+ RSPEC_DIR: spec/integration
diff --git a/Dockerfile b/Dockerfile
index ecc934d..a1dea96 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,6 +6,7 @@ RUN bash /root/install.sh
FROM debian:stable-slim
ENV PATH="/opt/ruby/bin:${HOME}/.local/bin:${PATH}"
-ENV RUBYLIB="/opt/spandx-gitlab/lib"
-RUN apt-get update -y && apt-get install -y libgdbm6 wget libssl1.1 libyaml-0-2 libreadline7 libncurses6
+RUN apt-get update -y && apt-get install -y libgdbm6 wget libssl1.1 libyaml-0-2 libreadline7 libncurses6 libxml2
COPY --from=ruby-builder /opt/ruby /opt/ruby
+RUN env
+RUN spandx help
diff --git a/Gemfile.lock b/Gemfile.lock
index 9a18938..9e19638 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -41,6 +41,8 @@ GEM
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-support (3.9.2)
+ rspec_junit_formatter (0.4.1)
+ rspec-core (>= 2, < 4, != 2.12.0)
rubocop (0.81.0)
jaro_winkler (~> 1.5.1)
parallel (~> 1.10)
@@ -71,6 +73,7 @@ DEPENDENCIES
json-schema (~> 2.8)
rake (~> 13.0)
rspec (~> 3.0)
+ rspec_junit_formatter (~> 0.4)
rubocop (~> 0.52)
rubocop-rspec (~> 1.22)
spandx-gitlab!
diff --git a/config/install.sh b/config/install.sh
index be133ac..58c1725 100644
--- a/config/install.sh
+++ b/config/install.sh
@@ -6,13 +6,13 @@ export DEBIAN_FRONTEND=noninteractive
apt-get clean
apt-get update -q
apt-get install -y wget apt-utils libedit2 git
-apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev
+apt-get install -y autoconf bison build-essential libssl-dev libyaml-dev libreadline-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm6 libgdbm-dev libxml2-dev
cd /root
wget https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.1.tar.gz
tar -xf ruby-2.7.1.tar.gz
cd ruby-2.7.1
-./configure --prefix=/opt/ruby --disable-install-doc --disable-install-rdoc --disable-install-capi --disable-dln --with-static-linked-ext --without-valgrind --disable-jit-support --disable-rubygems
+./configure --prefix=/opt/ruby --disable-install-doc --disable-install-rdoc --disable-install-capi --without-valgrind --disable-jit-support --disable-rubygems
make -j"$(nproc)"
make install
rm -r /opt/ruby/share
@@ -23,4 +23,6 @@ tar -xf rubygems-3.1.2.tgz
cd rubygems-3.1.2
ruby setup.rb
gem install bundler spandx
+rm -fr /opt/ruby/lib/ruby/gems/**/cache/*.gem
+rm /etc/profile
echo "Done"
diff --git a/spandx-gitlab.gemspec b/spandx-gitlab.gemspec
index 27556a3..9875de2 100644
--- a/spandx-gitlab.gemspec
+++ b/spandx-gitlab.gemspec
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
spec.metadata['homepage_uri'] = spec.homepage
spec.metadata['source_code_uri'] = 'https://gitlab.com/xlgmokha/spandx-gitlab'
- spec.metadata['changelog_uri'] = 'https://github.com/mokhan/spandx/blob/master/CHANGELOG.md'
+ spec.metadata['changelog_uri'] = 'https://gitlab.com/xlgmokha/spandx-gitlab/blob/master/CHANGELOG.md'
spec.files = Dir.chdir(File.expand_path(__dir__)) do
Dir.glob('exe/*') + Dir.glob('lib/**/**/*.{rb}') + Dir.glob('*.{md,yml,json}')
@@ -30,6 +30,7 @@ Gem::Specification.new do |spec|
spec.add_development_dependency 'json-schema', '~> 2.8'
spec.add_development_dependency 'rake', '~> 13.0'
spec.add_development_dependency 'rspec', '~> 3.0'
+ spec.add_development_dependency 'rspec_junit_formatter', '~> 0.4'
spec.add_development_dependency 'rubocop', '~> 0.52'
spec.add_development_dependency 'rubocop-rspec', '~> 1.22'
end