diff options
| author | mo khan <mo.khan@gmail.com> | 2020-04-20 22:25:22 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-04-20 22:25:22 -0600 |
| commit | 83ac7915f00d120f09db42ca60316dc745c73cc9 (patch) | |
| tree | 28fde141fdc7ab2ef6e3a5611d074785c0459d53 | |
| parent | 685f2f5b80222d6b7079c59bfd5b1c5df0e0337e (diff) | |
Build minimal image
| -rw-r--r-- | .gitlab-ci.yml | 26 | ||||
| -rw-r--r-- | .gitlab/test.yml | 36 | ||||
| -rw-r--r-- | Dockerfile | 5 | ||||
| -rw-r--r-- | Gemfile.lock | 3 | ||||
| -rw-r--r-- | config/install.sh | 6 | ||||
| -rw-r--r-- | spandx-gitlab.gemspec | 3 |
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 @@ -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 |
