From 6a50a879a8bab20fa3f6e41595178a77727c80b1 Mon Sep 17 00:00:00 2001 From: Zoran Kovacevic <110464447+zkovacevic-glooko@users.noreply.github.com> Date: Thu, 17 Nov 2022 16:03:34 +0100 Subject: [PATCH 1/3] GW-21578 --- docker-compose.yml | 15 +++++++++++++++ docker/gem/Dockerfile | 20 ++++++++++++++++++++ docker/gem/scripts/publish.sh | 23 +++++++++++++++++++++++ mongoid-rspec.gemspec | 7 +++++++ 4 files changed, 65 insertions(+) create mode 100644 docker-compose.yml create mode 100644 docker/gem/Dockerfile create mode 100755 docker/gem/scripts/publish.sh diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..092d721c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,15 @@ +# Should be used for development only (as this project is only a library) +version: '3.7' +services: + gem_publish: + build: + context: ./ + dockerfile: ./docker/gem/Dockerfile + volumes: + - .:/app:cached + environment: + - GEMSPEC_FILE=mongoid-rspec.gemspec + - GITHUB_GLOOKO_BUNDLE_PASSWORD=$GITHUB_GLOOKO_BUNDLE_PASSWORD + +volumes: + bundle: diff --git a/docker/gem/Dockerfile b/docker/gem/Dockerfile new file mode 100644 index 00000000..f8d62679 --- /dev/null +++ b/docker/gem/Dockerfile @@ -0,0 +1,20 @@ +FROM ruby:2.7.6-bullseye + +# rails/gem dependencies and development stuff +RUN set -ex \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + less \ + vim \ + && rm -rf /var/lib/apt/lists/* + +RUN echo 'Etc/GMT-13' > /etc/timezone \ + && rm /etc/localtime \ + && dpkg-reconfigure -f noninteractive tzdata + +ENV APP_PATH /app +RUN mkdir -p $APP_PATH +WORKDIR $APP_PATH +COPY . . + +CMD ["./docker/gem/scripts/publish.sh"] diff --git a/docker/gem/scripts/publish.sh b/docker/gem/scripts/publish.sh new file mode 100755 index 00000000..ba0beb88 --- /dev/null +++ b/docker/gem/scripts/publish.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -u +set -e +set -x + +GEM_TO_RELEASE=/tmp/release.gem +GEMRC_FILE=$HOME/.gem/credentials + +mkdir -p "`dirname "${GEMRC_FILE}"`" +mkdir -p "`dirname "${GEM_TO_RELEASE}"`" + +set +e && rm ${GEM_TO_RELEASE} 2> /dev/null && set -e + +cat >> "${GEMRC_FILE}" << EOF +--- +:github: Bearer ${GITHUB_GLOOKO_BUNDLE_PASSWORD} +EOF + +chmod 0600 $GEMRC_FILE + +gem build ${GEMSPEC_FILE} --output=${GEM_TO_RELEASE} +gem push --key github --host https://rubygems.pkg.github.com/glooko --verbose ${GEM_TO_RELEASE} diff --git a/mongoid-rspec.gemspec b/mongoid-rspec.gemspec index e567fc6d..618ce725 100644 --- a/mongoid-rspec.gemspec +++ b/mongoid-rspec.gemspec @@ -13,6 +13,13 @@ Gem::Specification.new do |s| s.description = 'RSpec matches for Mongoid models, including association and validation matchers.' s.license = 'MIT' + if gem.respond_to?(:metadata) + gem.metadata["allowed_push_host"] = "https://rubygems.pkg.github.com/glooko" + else + raise "RubyGems 2.0 or newer is required to protect against " \ + "public gem pushes." + end + s.required_ruby_version = '>= 2.2' s.required_rubygems_version = '>= 1.3.6' s.rubyforge_project = 'mongoid-rspec' From bf6b48103d1a5b2ef6d3dba103617c226c86318d Mon Sep 17 00:00:00 2001 From: Zoran Kovacevic <110464447+zkovacevic-glooko@users.noreply.github.com> Date: Thu, 17 Nov 2022 16:10:00 +0100 Subject: [PATCH 2/3] fix --- mongoid-rspec.gemspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mongoid-rspec.gemspec b/mongoid-rspec.gemspec index 618ce725..4876b30b 100644 --- a/mongoid-rspec.gemspec +++ b/mongoid-rspec.gemspec @@ -13,8 +13,8 @@ Gem::Specification.new do |s| s.description = 'RSpec matches for Mongoid models, including association and validation matchers.' s.license = 'MIT' - if gem.respond_to?(:metadata) - gem.metadata["allowed_push_host"] = "https://rubygems.pkg.github.com/glooko" + if s.respond_to?(:metadata) + s.metadata["allowed_push_host"] = "https://rubygems.pkg.github.com/glooko" else raise "RubyGems 2.0 or newer is required to protect against " \ "public gem pushes." From db92abf1d7fcdc12566121c30174c29f637c1098 Mon Sep 17 00:00:00 2001 From: Zoran Kovacevic <110464447+zkovacevic-glooko@users.noreply.github.com> Date: Thu, 17 Nov 2022 16:28:46 +0100 Subject: [PATCH 3/3] GW-21578 --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 4692d174..c6569f4e 100644 --- a/README.md +++ b/README.md @@ -370,3 +370,8 @@ You're encouraged to contribute to this library. See [CONTRIBUTING](CONTRIBUTING Copyright (c) 2009-2018 Evan Sagge and Contributors. MIT License. See [LICENSE](LICENSE) for details. + +## Pushing new version to Github Packages + +1. Load your personal access token in environment as `GITHUB_GLOOKO_BUNDLE_PASSWORD` +2. Run `docker compose run gem_publish`