Skip to content

Commit

Permalink
Merge pull request #16 from kickstarter/github-releases
Browse files Browse the repository at this point in the history
GitHub releases
  • Loading branch information
amancevice committed Sep 8, 2023
2 parents 906c692 + 69ff512 commit 524046f
Show file tree
Hide file tree
Showing 7 changed files with 122 additions and 18 deletions.
19 changes: 19 additions & 0 deletions .github/actions/setup-rubygems/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Setup RubyGems
description: Setup RubyGems credentials
inputs:
rubygems_api_key:
description: RubyGems API key
required: true
runs:
using: composite
steps:
- run: mkdir -p ~/.gem
shell: bash
- run: |
cat <<-YAML > ~/.gem/credentials
---
:rubygems_api_key: ${{ inputs.rubygems_api_key }}
YAML
shell: bash
- run: chmod 0600 ~/.gem/credentials
shell: bash
15 changes: 15 additions & 0 deletions .github/actions/test/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
name: Test
description: Run tests
inputs:
activesupport-version:
description: ActiveSupport version constraint
required: true
runs:
using: composite
steps:
- run: bundle add activesupport -v '${{ inputs.activesupport-version }}'
shell: bash
- run: bundle install
shell: bash
- run: bundle exec rake
shell: bash
40 changes: 40 additions & 0 deletions .github/workflows/test-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Test and Release
on:
pull_request:
push:
release:
types:
- published
jobs:
test:
name: Test [Ruby ${{ matrix.ruby-version }}]
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version:
- "2.7"
- "3.1"
- "3.2"
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- run: bundle install
- run: bundle exec rake test
push:
name: Publish Gem
if: ${{ github.event.release }}
needs:
- test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
- uses: ./.github/actions/setup-rubygems
with:
rubygems_api_key: ${{ secrets.RUBYGEMS_API_KEY }}
- run: bundle install
- run: bundle exec rake gem:push
5 changes: 0 additions & 5 deletions .travis.yml

This file was deleted.

23 changes: 21 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1,10 +1,29 @@
require "rubygems"
require "bundler/setup"
require "bundler/gem_tasks"
require 'rake/testtask'

task :default => :test

Rake::TestTask.new do |t|
t.pattern = "spec/*_spec.rb"
end

task :default => :test
namespace :gem do
require 'bundler/gem_tasks'

@gem = "pkg/egads-#{ Egads::VERSION }.gem"

desc "Push #{ @gem } to rubygems.org"
task :push => %i[test build git:check] do
sh %{gem push #{ @gem }}
end
end

namespace :git do
desc 'Check git workspace'
task :check do
sh %{git diff HEAD --quiet} do |ok|
abort "\e[31mRefusing to continue - git workspace is dirty\e[0m" unless ok
end
end
end
14 changes: 14 additions & 0 deletions Taskfile.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# https://taskfile.dev

version: "3"

tasks:
init:
desc: Initialize project
cmds:
- bundle install

test:
desc: Run tests
cmds:
- bundle exec rake test
24 changes: 13 additions & 11 deletions egads.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,31 @@ $:.unshift 'lib'
require 'egads/version'

Gem::Specification.new do |s|
s.name = "egads"
s.version = Egads::VERSION
s.summary = "Extensible Git Archive Deploy Strategy"
s.homepage = "https://github.com/kickstarter/egads"
s.email = ["aaron@ktheory.com"]
s.authors = ["Aaron Suggs"]
s.license = 'MIT'
s.name = "egads"
s.version = Egads::VERSION
s.summary = "Extensible Git Archive Deploy Strategy"
s.homepage = "https://github.com/kickstarter/egads"
s.email = ["aaron@ktheory.com"]
s.authors = ["Aaron Suggs"]
s.license = 'MIT'

s.files = `git ls-files`.split($/)
s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
s.test_files = s.files.grep(%r{^(test|spec|features)/})
s.require_paths = ["lib"]

s.extra_rdoc_files = [ "README.md" ]
s.extra_rdoc_files = ["README.md"]
s.rdoc_options = ["--charset=UTF-8"]

s.add_dependency "aws-sdk-s3", '~> 1.0'
s.add_dependency "rexml" # required for Ruby 3+
s.add_dependency "thor"

s.add_development_dependency "rake"
s.add_development_dependency "minitest"
#s.add_development_dependency "simple_mock" # Via http://tatey.com/2012/02/07/mocking-with-minitest-mock-and-simple-delegator/

s.description = %s{
s.description = <<~EOS
A collection of scripts for making a deployable tarball of a git commit,
uploading it to Amazon S3, and downloading it to your servers.}
uploading it to Amazon S3, and downloading it to your servers.
EOS
end

0 comments on commit 524046f

Please sign in to comment.