Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub releases #16

Merged
merged 6 commits into from
Sep 8, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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 = ["[email protected]"]
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 = ["[email protected]"]
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