Skip to content

Commit 5b3f5d9

Browse files
authored
Merge pull request #9 from github/gems
Add script/release for gem releases
2 parents 508a0d7 + 808fa54 commit 5b3f5d9

13 files changed

Lines changed: 64 additions & 23 deletions

Gemfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
entitlements (0.1.6)
4+
entitlements-app (0.1.7)
55
concurrent-ruby (= 1.1.9)
66
contracts (= 0.16.0)
77
faraday (>= 0.17.3, < 0.18)
@@ -33,7 +33,7 @@ GEM
3333
concurrent-ruby (~> 1.0)
3434
json (2.6.2)
3535
minitest (5.15.0)
36-
multipart-post (2.2.2)
36+
multipart-post (2.2.3)
3737
net-ldap (0.17.1)
3838
octokit (4.22.0)
3939
faraday (>= 0.9)
@@ -108,7 +108,7 @@ PLATFORMS
108108
ruby
109109

110110
DEPENDENCIES
111-
entitlements!
111+
entitlements-app!
112112
rake (= 13.0.6)
113113
rspec (= 3.8.0)
114114
rspec-core (= 3.8.0)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.6
1+
0.1.7

docs/plugins.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Your `entitlements-app` config `config/entitlements.yaml` runs through ERB inter
66
<%-
77
unless ENV['CI_MODE']
88
begin
9-
require_relative "/data/entitlements/lib/entitlements-and-plugins"
9+
require_relative "/data/entitlements-app/lib/entitlements-and-plugins"
1010
rescue Exception
1111
begin
1212
require_relative "lib/entitlements-and-plugins"
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# frozen_string_literal: true
22

33
Gem::Specification.new do |s|
4-
s.name = "entitlements"
4+
s.name = "entitlements-app"
55
s.version = File.read("VERSION").chomp
66
s.summary = "git-managed LDAP group configurations"
77
s.description = "The Ruby Gem that Powers Entitlements - GitHub's Identity and Access Management System"
@@ -11,6 +11,7 @@ Gem::Specification.new do |s|
1111
s.files = Dir.glob("lib/**/*") + %w[bin/deploy-entitlements VERSION]
1212
s.homepage = "https://github.com/github/entitlements-app"
1313
s.executables = %w[deploy-entitlements]
14+
s.required_ruby_version = '~> 2.0'
1415

1516
s.add_dependency "concurrent-ruby", "= 1.1.9"
1617
s.add_dependency "contracts", "= 0.16.0"

script/cibuild

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22
set -e
33

44
cd "$(dirname "$0")/.."
5-
docker build -t entitlements -f spec/acceptance/Dockerfile.entitlements .
6-
docker run -w "/data/entitlements" entitlements bash -c "script/test"
5+
docker build -t entitlements-app -f spec/acceptance/Dockerfile.entitlements-app .
6+
docker run -w "/data/entitlements-app" entitlements-app bash -c "script/test"

script/cibuild-entitlements-app-acceptance

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
export DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
4-
export APP_NAME="entitlements"
4+
export APP_NAME="entitlements-app"
55
export GIT_SERVER_NAME="git-server"
66
export LDAP_SERVER_NAME="ldap-server"
77

script/cibuild-entitlements-app-code-lint

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
set -e
33

44
cd "$(dirname "$0")/.."
5-
docker build -t entitlements -f spec/acceptance/Dockerfile.entitlements .
6-
docker run -w "/data/entitlements/" entitlements \
5+
docker build -t entitlements-app -f spec/acceptance/Dockerfile.entitlements-app .
6+
docker run -w "/data/entitlements-app/" entitlements-app \
77
bash -c "script/bootstrap && bin/rubocop "$@" lib/ spec/"

script/release

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/bash
2+
# Tag and push a release.
3+
4+
set -e
5+
set -x
6+
7+
# Make sure we're in the project root.
8+
9+
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )"
10+
cd ${DIR}
11+
12+
# Build a new gem archive.
13+
14+
rm -rf entitlements-app-*.gem
15+
gem build -q entitlements-app.gemspec
16+
17+
# Make sure we're on the main branch.
18+
19+
(git branch --no-color | grep -q '* main') || {
20+
echo "Only release from the main branch."
21+
exit 1
22+
}
23+
24+
# Figure out what version we're releasing.
25+
26+
tag=v`ls entitlements-app-*.gem | sed 's/^entitlements-app-\(.*\)\.gem$/\1/'`
27+
28+
# Make sure we haven't released this version before.
29+
30+
git fetch -t origin
31+
32+
(git tag -l | grep -q "$tag") && {
33+
echo "Whoops, there's already a '${tag}' tag."
34+
exit 1
35+
}
36+
37+
# Tag it and bag it.
38+
39+
gem push entitlements-app-*.gem && git tag "$tag" &&
40+
git push origin main && git push origin "$tag"

spec/acceptance/Dockerfile.entitlements renamed to spec/acceptance/Dockerfile.entitlements-app

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ LABEL maintainer="GitHub Security Ops <[email protected]>"
33
ENV HOME /root
44
ENV RELEASE=buster
55
ENV container docker
6-
WORKDIR /data/entitlements
6+
WORKDIR /data/entitlements-app
77

88
# Install dependency packages for bootstrapping and running...
99
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
@@ -15,11 +15,11 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
1515
RUN gem install bundler
1616

1717
# Bootstrap files and caching for speed
18-
COPY "vendor/cache/" "/data/entitlements/vendor/cache/"
19-
COPY "script/" "/data/entitlements/script/"
20-
COPY [".rubocop.yml", ".ruby-version", "entitlements.gemspec", "Gemfile", "Gemfile.lock", "VERSION", "/data/entitlements/"]
18+
COPY "vendor/cache/" "/data/entitlements-app/vendor/cache/"
19+
COPY "script/" "/data/entitlements-app/script/"
20+
COPY [".rubocop.yml", ".ruby-version", "entitlements-app.gemspec", "Gemfile", "Gemfile.lock", "VERSION", "/data/entitlements-app/"]
2121

2222
# Source Files
23-
COPY "bin/" "/data/entitlements/bin/"
24-
COPY "lib/" "/data/entitlements/lib/"
25-
COPY "spec/" "/data/entitlements/spec/"
23+
COPY "bin/" "/data/entitlements-app/bin/"
24+
COPY "lib/" "/data/entitlements-app/lib/"
25+
COPY "spec/" "/data/entitlements-app/spec/"

spec/acceptance/docker-compose.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ networks:
55
internal: true
66

77
services:
8-
entitlements:
8+
entitlements-app:
99
build:
1010
context: "${DIR}"
11-
dockerfile: "spec/acceptance/Dockerfile.entitlements"
11+
dockerfile: "spec/acceptance/Dockerfile.entitlements-app"
1212
networks:
1313
ldap-network:
1414
aliases:
1515
- entitlements.fake
1616
volumes:
1717
- "${DIR}/spec/acceptance:/acceptance:ro"
18-
- "${DIR}/vendor/container-gems:/data/entitlements/vendor/gems:rw"
18+
- "${DIR}/vendor/container-gems:/data/entitlements-app/vendor/gems:rw"
1919
git-server:
2020
entrypoint: /acceptance/git-server/run-server.sh
2121
image: jkarlos/git-server-docker

0 commit comments

Comments
 (0)