egads 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b26a0eb6c696433c8d0d9f5b7096d9fb810882c9ccc54a5e5165d12e965e08e
4
- data.tar.gz: d2229d72f7ed72dd980da57b57dc8076cc8775293d016b7b0be7a691de33320c
3
+ metadata.gz: '09258b7cad1e80200b4a8b3d6d47efffb9111f4fbe98ad5891d282db31f80e32'
4
+ data.tar.gz: ecded76960e9067e64730e6f2289635622a658b13d2ec8cd1c6a61b733882a20
5
5
  SHA512:
6
- metadata.gz: d1acba8d3973c141fb9ecb0f3fd041fca8b6d570ee37782dc14c3c4007a4a4211269edfc1f7d0885fad1556c35ed9479f5015850ad69be3c85d7f59f6459dc92
7
- data.tar.gz: 92272667f510eb9652d780a6a38420079d98b13c9cdf45af31448e2e1175f96bd1763409006514587ed81bda9c9a5bd2d56f813dda58ee99be04cee9567ac8d4
6
+ metadata.gz: 9493f4ce2b5c34b24f3422a8aa076b7a77816b00db3140de4d0aea6c3f1c8b5e8ba71d349037980b309e530502b55e9211b32fc06275a61bf0bd9fea31eb7468
7
+ data.tar.gz: e9b3ed9c711f7b0f01e45cc2ffa8310e83a6747b20ab6f3edbdd656c9efba420c19722c9bdd4044531fd24ab39387f0dd923b8cddb00a9ab98b4bffcdf2f0462
@@ -0,0 +1,18 @@
1
+ name: Setup RubyGems
2
+ description: Setup RubyGems credentials
3
+ inputs:
4
+ api-key:
5
+ description: RubyGems API key
6
+ required: true
7
+ runs:
8
+ using: composite
9
+ steps:
10
+ - name: setup rubygems
11
+ shell: bash
12
+ run: |
13
+ mkdir -p ~/.gem
14
+ cat <<-YAML > ~/.gem/credentials
15
+ ---
16
+ :rubygems_api_key: ${{ inputs.api-key }}
17
+ YAML
18
+ chmod 0600 ~/.gem/credentials
@@ -0,0 +1,48 @@
1
+ name: Test and Release
2
+ on:
3
+ pull_request:
4
+ push:
5
+ paths:
6
+ - .github/**
7
+ - bin/**
8
+ - lib/**
9
+ - spec/**
10
+ - Gemfile
11
+ - Guardfile
12
+ - Rakefile
13
+ - egads.gemspec
14
+ release:
15
+ types:
16
+ - published
17
+ jobs:
18
+ test:
19
+ name: Test [Ruby ${{ matrix.ruby-version }}]
20
+ runs-on: ubuntu-latest
21
+ strategy:
22
+ matrix:
23
+ ruby-version:
24
+ - "3.2"
25
+ - "3.3"
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - uses: ruby/setup-ruby@v1
29
+ with:
30
+ ruby-version: ${{ matrix.ruby-version }}
31
+ - run: bundle install
32
+ - run: bundle exec rake test
33
+ push:
34
+ name: Publish Gem
35
+ if: ${{ github.event.release }}
36
+ needs:
37
+ - test
38
+ runs-on: ubuntu-latest
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ - uses: ruby/setup-ruby@v1
42
+ with:
43
+ ruby-version: "3.3"
44
+ - uses: ./.github/actions/setup-rubygems
45
+ with:
46
+ api-key: ${{ secrets.RUBYGEMS_API_KEY }}
47
+ - run: bundle install
48
+ - run: bundle exec rake gem:push
data/.gitignore CHANGED
@@ -17,3 +17,5 @@ tmp
17
17
  .yardoc
18
18
  _yardoc
19
19
  doc/
20
+
21
+ .ruby-version
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # egads!!!
2
2
  # *Extensible Git-Archive Deploy Strategy*
3
3
 
4
+ [![Test and Release](https://github.com/kickstarter/egads/actions/workflows/test-release.yml/badge.svg)](https://github.com/kickstarter/egads/actions/workflows/test-release.yml)
5
+
4
6
  egads is a set of commands for deploying applications without depending on a git
5
7
  server.
6
8
 
@@ -13,13 +15,17 @@ Climate](https://d3s6mut3hikguw.cloudfront.net/github/kickstarter/egads.svg)](ht
13
15
 
14
16
  Put `egads` in your Gemfile:
15
17
 
16
- # In Gemfile
17
- gem 'egads', require: nil
18
+ ```ruby
19
+ # ./Gemfile
20
+ gem 'egads', require: nil
21
+ ```
18
22
 
19
23
  On remote machines (to which you deploy), `egads` must be in your PATH.
20
24
  So install `egads` as a system gem:
21
25
 
22
- sudo gem install egads
26
+ ```bash
27
+ gem install egads
28
+ ```
23
29
 
24
30
  ## Commands
25
31
 
@@ -31,8 +37,8 @@ Commands are either *porcelain* commands that you should call directly as part o
31
37
 
32
38
  ### Local commands
33
39
 
34
- * `egads check [SHA]` - checks if a deployable tarball of the current commit exists on S3.
35
- * `egads build [SHA]` - makes a deployable tarball of the current commit and upload it to S3 (if missing).
40
+ * `egads check SHA` - checks if a deployable tarball of the current commit exists on S3.
41
+ * `egads build SHA` - makes a deployable tarball of the current commit and upload it to S3 (if missing).
36
42
  * `egads upload SHA` - (plumbing, called by `build`) Uploads a pre-built tarball.
37
43
 
38
44
  ### Remote commands
@@ -57,6 +63,15 @@ The deploy process is:
57
63
  * Run `egads stage SHA` on all the remote servers to download, extract, and configure the SHA for release.
58
64
  * Run `egads release SHA` on all the remote servers to symlink the staged SHA to 'current', and restart services.
59
65
 
66
+ ## Publishing a New Gem Version
67
+
68
+ To publish a new version of `egads`:
69
+
70
+ 1. Update [`Egads::VERSION`](./lib/egads/version.rb)
71
+ 2. Commit and push to GitHub
72
+ 3. Create a new [GitHub release](https://github.com/kickstarter/egads/releases)
73
+ 4. Monitor the [Test and Release](https://github.com/kickstarter/egads/actions/workflows/test-release.yml) action to ensure the gem is published successfully
74
+
60
75
  ## License
61
76
 
62
77
  Copyright (c) 2013 Kickstarter, Inc
data/Rakefile CHANGED
@@ -1,10 +1,29 @@
1
1
  require "rubygems"
2
2
  require "bundler/setup"
3
- require "bundler/gem_tasks"
4
3
  require 'rake/testtask'
5
4
 
5
+ task :default => :test
6
+
6
7
  Rake::TestTask.new do |t|
7
8
  t.pattern = "spec/*_spec.rb"
8
9
  end
9
10
 
10
- task :default => :test
11
+ namespace :gem do
12
+ require 'bundler/gem_tasks'
13
+
14
+ @gem = "pkg/egads-#{ Egads::VERSION }.gem"
15
+
16
+ desc "Push #{ @gem } to rubygems.org"
17
+ task :push => %i[test build git:check] do
18
+ sh %{gem push #{ @gem }}
19
+ end
20
+ end
21
+
22
+ namespace :git do
23
+ desc 'Check git workspace'
24
+ task :check do
25
+ sh %{git diff HEAD --quiet} do |ok|
26
+ abort "\e[31mRefusing to continue - git workspace is dirty\e[0m" unless ok
27
+ end
28
+ end
29
+ end
data/Taskfile.yml ADDED
@@ -0,0 +1,14 @@
1
+ # https://taskfile.dev
2
+
3
+ version: "3"
4
+
5
+ tasks:
6
+ init:
7
+ desc: Initialize project
8
+ cmds:
9
+ - bundle install
10
+
11
+ test:
12
+ desc: Run tests
13
+ cmds:
14
+ - bundle exec rake test
data/egads.gemspec CHANGED
@@ -2,29 +2,31 @@ $:.unshift 'lib'
2
2
  require 'egads/version'
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = "egads"
6
- s.version = Egads::VERSION
7
- s.summary = "Extensible Git Archive Deploy Strategy"
8
- s.homepage = "https://github.com/kickstarter/egads"
9
- s.email = ["aaron@ktheory.com"]
10
- s.authors = ["Aaron Suggs"]
11
- s.license = 'MIT'
5
+ s.name = "egads"
6
+ s.version = Egads::VERSION
7
+ s.summary = "Extensible Git Archive Deploy Strategy"
8
+ s.homepage = "https://github.com/kickstarter/egads"
9
+ s.email = ["aaron@ktheory.com"]
10
+ s.authors = ["Aaron Suggs"]
11
+ s.license = 'MIT'
12
12
 
13
13
  s.files = `git ls-files`.split($/)
14
14
  s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
15
  s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
16
  s.require_paths = ["lib"]
17
17
 
18
- s.extra_rdoc_files = [ "README.md" ]
18
+ s.extra_rdoc_files = ["README.md"]
19
19
  s.rdoc_options = ["--charset=UTF-8"]
20
20
 
21
21
  s.add_dependency "aws-sdk-s3", '~> 1.0'
22
+ s.add_dependency "rexml", ">= 3.3.4" # required for Ruby 3+
22
23
  s.add_dependency "thor"
24
+
23
25
  s.add_development_dependency "rake"
24
26
  s.add_development_dependency "minitest"
25
- #s.add_development_dependency "simple_mock" # Via http://tatey.com/2012/02/07/mocking-with-minitest-mock-and-simple-delegator/
26
27
 
27
- s.description = %s{
28
+ s.description = <<~EOS
28
29
  A collection of scripts for making a deployable tarball of a git commit,
29
- uploading it to Amazon S3, and downloading it to your servers.}
30
+ uploading it to Amazon S3, and downloading it to your servers.
31
+ EOS
30
32
  end
@@ -3,6 +3,7 @@ module Egads
3
3
  include Thor::Actions
4
4
 
5
5
  desc "[remote, plumbing] Downloads tarball for SHA from S3 and extracts it to the filesystem"
6
+ class_option :deployment_id, type: :string, default: nil, banner: 'Append suffix to release directory'
6
7
  class_option :force, type: :boolean, aliases: '-f', default: false, banner: "Overwrite existing files"
7
8
  argument :sha, type: :string, required: true, desc: 'git SHA to download and extract'
8
9
 
@@ -89,7 +90,8 @@ module Egads
89
90
 
90
91
  # Directory created upon successful extraction
91
92
  def release_dir
92
- RemoteConfig.release_dir(sha)
93
+ suffix = options[:deployment_id] ? "_#{options[:deployment_id]}" : ''
94
+ RemoteConfig.release_dir(sha) + suffix
93
95
  end
94
96
 
95
97
  # Directory where in-progress extraction occurs
@@ -104,7 +106,7 @@ module Egads
104
106
  end
105
107
 
106
108
  def should_download?(path)
107
- options[:force] || File.zero?(path) || !File.exists?(path)
109
+ options[:force] || File.zero?(path) || !File.exist?(path)
108
110
  end
109
111
 
110
112
  def should_extract?
@@ -3,6 +3,7 @@ module Egads
3
3
  include Thor::Actions
4
4
 
5
5
  desc "[remote] Symlinks SHA to current and restarts services. If needed, stages SHA"
6
+ class_option :deployment_id, type: :string, default: nil, banner: 'Append suffix to release directory'
6
7
  class_option :force, type: :boolean, default: false, banner: "Overwrite existing release"
7
8
  argument :sha, type: :string, required: true, desc: 'git SHA to stage'
8
9
  def setup_environment
@@ -44,8 +45,10 @@ module Egads
44
45
  end
45
46
 
46
47
  protected
48
+
47
49
  def dir
48
- RemoteConfig.release_dir(sha)
50
+ suffix = options[:deployment_id] ? "_#{options[:deployment_id]}" : ''
51
+ RemoteConfig.release_dir(sha) + suffix
49
52
  end
50
53
 
51
54
  def release_to
@@ -2,8 +2,8 @@ module Egads
2
2
  class Stage < Group
3
3
  include Thor::Actions
4
4
 
5
-
6
5
  desc "[remote] Readies SHA for release. If needed, generates URL for SHA and extracts"
6
+ class_option :deployment_id, type: :string, default: nil, banner: 'Append suffix to release directory'
7
7
  class_option :force, type: :boolean, default: false, banner: "Overwrite existing files"
8
8
  argument :sha, type: :string, required: true, desc: 'git SHA to stage'
9
9
 
@@ -57,8 +57,10 @@ module Egads
57
57
  end
58
58
 
59
59
  protected
60
+
60
61
  def dir
61
- RemoteConfig.release_dir(sha)
62
+ suffix = options[:deployment_id] ? "_#{options[:deployment_id]}" : ''
63
+ RemoteConfig.release_dir(sha) + suffix
62
64
  end
63
65
 
64
66
  def stage_flag_path
@@ -66,7 +68,7 @@ module Egads
66
68
  end
67
69
 
68
70
  def should_stage?
69
- options[:force] || !File.exists?(stage_flag_path)
71
+ options[:force] || !File.exist?(stage_flag_path)
70
72
  end
71
73
 
72
74
  def shared_path
@@ -74,5 +76,3 @@ module Egads
74
76
  end
75
77
  end
76
78
  end
77
-
78
-
data/lib/egads/config.rb CHANGED
@@ -6,9 +6,14 @@ module Egads
6
6
  end
7
7
 
8
8
  def s3_bucket
9
- return @bucket if @bucket
10
- client = Aws::S3::Client.new(access_key_id: config['s3']['access_key'], secret_access_key: config['s3']['secret_key'], region: 'us-east-1')
11
- @bucket = Aws::S3::Bucket.new(config['s3']['bucket'], client: client)
9
+ @bucket ||= begin
10
+ client = Aws::S3::Client.new(**{
11
+ access_key_id: config['s3']['access_key'],
12
+ secret_access_key: config['s3']['secret_key'],
13
+ region: config['s3']['region'],
14
+ }.compact)
15
+ Aws::S3::Bucket.new(config['s3']['bucket'], client: client)
16
+ end
12
17
  end
13
18
 
14
19
  def s3_prefix
data/lib/egads/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Egads
2
- VERSION = '5.1.0'
2
+ VERSION = '5.2.0'
3
3
  end
@@ -4,21 +4,21 @@ describe "Egads::Build" do
4
4
  subject { Egads::Build }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(check_build run_before_build_hooks write_revision_file commit_extra_paths make_tarball run_after_build_hooks upload)
7
+ _(subject.commands.keys).must_equal %w(check_build run_before_build_hooks write_revision_file commit_extra_paths make_tarball run_after_build_hooks upload)
8
8
  end
9
9
 
10
10
  it 'takes one argument' do
11
- subject.arguments.size.must_equal 1
11
+ _(subject.arguments.size).must_equal 1
12
12
  end
13
13
 
14
14
  it 'has a rev argument' do
15
15
  rev = subject.arguments.detect{|arg| arg.name == 'rev'}
16
- rev.default.must_equal 'HEAD'
17
- rev.required.must_equal false
16
+ _(rev.default).must_equal 'HEAD'
17
+ _(rev.required).must_equal false
18
18
  end
19
19
 
20
20
  it "exits on failure" do
21
- subject.exit_on_failure?.must_equal true
21
+ _(subject.exit_on_failure?).must_equal true
22
22
  end
23
23
  end
24
24
 
@@ -26,6 +26,6 @@ describe "Egags::Build instance" do
26
26
  subject { Egads::Build.new }
27
27
 
28
28
  it "has rev HEAD" do
29
- subject.rev.must_equal 'HEAD'
29
+ _(subject.rev).must_equal 'HEAD'
30
30
  end
31
31
  end
@@ -4,17 +4,17 @@ describe "Egads::Check" do
4
4
  subject { Egads::Check }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(check)
7
+ _(subject.commands.keys).must_equal %w(check)
8
8
  end
9
9
 
10
10
  it 'takes one argument' do
11
- subject.arguments.size.must_equal 1
11
+ _(subject.arguments.size).must_equal 1
12
12
  end
13
13
 
14
14
  it 'has a rev argument' do
15
15
  rev = subject.arguments.detect{|arg| arg.name == 'rev'}
16
- rev.default.must_equal 'HEAD'
17
- rev.required.must_equal false
16
+ _(rev.default).must_equal 'HEAD'
17
+ _(rev.required).must_equal false
18
18
  end
19
19
 
20
20
  end
@@ -23,6 +23,6 @@ describe "Egags::Build instance" do
23
23
  subject { Egads::Check.new }
24
24
 
25
25
  it "has rev HEAD" do
26
- subject.rev.must_equal 'HEAD'
26
+ _(subject.rev).must_equal 'HEAD'
27
27
  end
28
28
  end
@@ -3,6 +3,6 @@ require_relative 'spec_helper'
3
3
  describe "Egads::Command" do
4
4
  subject { Egads::Command }
5
5
  it 'should exit on failure' do
6
- subject.exit_on_failure?.must_equal true
6
+ _(subject.exit_on_failure?).must_equal true
7
7
  end
8
8
  end
@@ -5,7 +5,7 @@ describe Egads::Config do
5
5
  subject { Egads::Config }
6
6
  it "raises ArgumentError for missing config" do
7
7
  ENV['EGADS_CONFIG'] = '/no/such/path'
8
- -> { subject.config_path }.must_raise(ArgumentError)
8
+ _{ subject.config_path }.must_raise(ArgumentError)
9
9
  end
10
10
 
11
11
  describe "with an config file" do
@@ -14,16 +14,16 @@ describe Egads::Config do
14
14
 
15
15
  describe '#config' do
16
16
  it 'is a hash' do
17
- subject.config.must_equal yml
17
+ _(subject.config).must_equal yml
18
18
  end
19
19
  end
20
20
 
21
21
  it "has an S3 bucket" do
22
- subject.s3_bucket.name.must_equal yml['s3']['bucket']
22
+ _(subject.s3_bucket.name).must_equal yml['s3']['bucket']
23
23
  end
24
24
 
25
25
  it "has an S3 prefix" do
26
- subject.s3_prefix.must_equal yml['s3']['prefix']
26
+ _(subject.s3_prefix).must_equal yml['s3']['prefix']
27
27
  end
28
28
  end
29
29
 
@@ -34,21 +34,21 @@ describe Egads::RemoteConfig do
34
34
 
35
35
  it "raises ArgumentError for missing config" do
36
36
  ENV['EGADS_REMOTE_CONFIG'] = '/no/such/path'
37
- -> { subject.config_path }.must_raise(ArgumentError)
37
+ _{ subject.config_path }.must_raise(ArgumentError)
38
38
  end
39
39
 
40
40
  describe "with an config file" do
41
41
  let(:yml) { YAML.load_file("example/egads_remote.yml") }
42
42
 
43
43
  describe '#config' do
44
- it('is a hash') { subject.config.must_equal yml }
44
+ it('is a hash') { _(subject.config).must_equal yml }
45
45
  end
46
46
 
47
- it('#release_to') { subject.release_to.must_equal yml['release_to'] }
48
- it('#extract_to') { subject.extract_to.must_equal yml['extract_to'] }
49
- it('#release_dir') { subject.release_dir('abc').must_equal File.join(yml['extract_to'], 'abc') }
50
- it('#restart_command') { subject.restart_command.must_equal yml['restart_command'] }
51
- it('#bundler_options') { subject.bundler_options.must_equal yml['bundler']['options'] }
47
+ it('#release_to') { _(subject.release_to).must_equal yml['release_to'] }
48
+ it('#extract_to') { _(subject.extract_to).must_equal yml['extract_to'] }
49
+ it('#release_dir') { _(subject.release_dir('abc')).must_equal File.join(yml['extract_to'], 'abc') }
50
+ it('#restart_command') { _(subject.restart_command).must_equal yml['restart_command'] }
51
+ it('#bundler_options') { _(subject.bundler_options).must_equal yml['bundler']['options'] }
52
52
 
53
53
  describe '#setup_environment' do
54
54
  before { subject.setup_environment }
@@ -59,7 +59,7 @@ describe Egads::RemoteConfig do
59
59
 
60
60
  it 'should set ENV values' do
61
61
  yml['env'].each do |key, value|
62
- ENV[key].must_equal value
62
+ _(ENV[key]).must_equal value
63
63
  end
64
64
  end
65
65
  end
@@ -4,6 +4,6 @@ describe "Egads::Extract" do
4
4
  subject { Egads::Extract }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(setup_environment extract)
7
+ _(subject.commands.keys).must_equal %w(setup_environment extract)
8
8
  end
9
9
  end
@@ -4,6 +4,6 @@ describe "Egads::Release" do
4
4
  subject { Egads::Release }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(setup_environment stage run_before_release_hooks symlink_release restart run_after_release_hooks trim)
7
+ _(subject.commands.keys).must_equal %w(setup_environment stage run_before_release_hooks symlink_release restart run_after_release_hooks trim)
8
8
  end
9
9
  end
@@ -5,16 +5,16 @@ describe Egads::S3Tarball do
5
5
 
6
6
  after { Aws.config.delete(:s3) }
7
7
 
8
- it('has a sha') { subject.sha.must_equal 'sha' }
9
- it('has a key') { subject.key.must_equal 'my_project/sha.tar.gz' }
8
+ it('has a sha') { _(subject.sha).must_equal 'sha' }
9
+ it('has a key') { _(subject.key).must_equal 'my_project/sha.tar.gz' }
10
10
 
11
11
  it "has an S3 bucket" do
12
- subject.bucket.name.must_equal Egads::Config.s3_bucket.name
12
+ _(subject.bucket.name).must_equal Egads::Config.s3_bucket.name
13
13
  end
14
14
 
15
15
  it('should not exist') {
16
16
  Aws.config[:s3] = {stub_responses: { head_object: {status_code: 404, headers: {}, body: '', }}}
17
- subject.exists?.must_equal(false)
17
+ _(subject.exists?).must_equal(false)
18
18
  }
19
19
 
20
20
  describe 'when uploaded' do
@@ -23,8 +23,7 @@ describe Egads::S3Tarball do
23
23
  end
24
24
 
25
25
  it('should exist') do
26
- subject.exists?.must_equal true
26
+ _(subject.exists?).must_equal true
27
27
  end
28
28
  end
29
29
  end
30
-
@@ -4,6 +4,6 @@ describe "Egads::Stage" do
4
4
  subject { Egads::Stage }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(setup_environment extract run_before_hooks bundle symlink_system_paths symlink_config_files run_after_stage_hooks mark_as_staged)
7
+ _(subject.commands.keys).must_equal %w(setup_environment extract run_before_hooks bundle symlink_system_paths symlink_config_files run_after_stage_hooks mark_as_staged)
8
8
  end
9
9
  end
@@ -4,6 +4,6 @@ describe "Egads::Trim" do
4
4
  subject { Egads::Trim }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(trim)
7
+ _(subject.commands.keys).must_equal %w(trim)
8
8
  end
9
9
  end
@@ -4,6 +4,6 @@ describe "Egads::Upload" do
4
4
  subject { Egads::Upload }
5
5
 
6
6
  it 'should run the correct tasks' do
7
- subject.commands.keys.must_equal %w(upload)
7
+ _(subject.commands.keys).must_equal %w(upload)
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: egads
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.0
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Suggs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2024-09-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-s3
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rexml
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 3.3.4
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 3.3.4
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: thor
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,10 +80,9 @@ dependencies:
66
80
  - - ">="
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
- description: |2-
70
-
71
- A collection of scripts for making a deployable tarball of a git commit,
72
- uploading it to Amazon S3, and downloading it to your servers.
83
+ description: |
84
+ A collection of scripts for making a deployable tarball of a git commit,
85
+ uploading it to Amazon S3, and downloading it to your servers.
73
86
  email:
74
87
  - aaron@ktheory.com
75
88
  executables:
@@ -78,12 +91,14 @@ extensions: []
78
91
  extra_rdoc_files:
79
92
  - README.md
80
93
  files:
94
+ - ".github/actions/setup-rubygems/action.yml"
95
+ - ".github/workflows/test-release.yml"
81
96
  - ".gitignore"
82
- - ".travis.yml"
83
97
  - Gemfile
84
98
  - Guardfile
85
99
  - README.md
86
100
  - Rakefile
101
+ - Taskfile.yml
87
102
  - bin/egads
88
103
  - egads.gemspec
89
104
  - example/egads.yml
@@ -134,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
149
  - !ruby/object:Gem::Version
135
150
  version: '0'
136
151
  requirements: []
137
- rubygems_version: 3.0.3
152
+ rubygems_version: 3.5.16
138
153
  signing_key:
139
154
  specification_version: 4
140
155
  summary: Extensible Git Archive Deploy Strategy
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- language: ruby
2
- sudo: false # Opt-in to container infrastructure
3
- rvm:
4
- - 2.5.5
5
- - 2.6.3