Skip to content

Commit e5ad275

Browse files
Refactor/publish (#13)
* refactor: move credentials logic to hosting service * docs: add repo metadata * use publisher module
1 parent 4158c16 commit e5ad275

6 files changed

+46
-26
lines changed

README.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Publish ruby gem action
22

3+
[![Author](https://img.shields.io/badge/author-juliocabrera820-3D3D4D?color=233D3D4&style=flat)](https://github.com/juliocabrera820)
4+
[![Languages](https://img.shields.io/github/languages/count/juliocabrera820/publish-ruby-gem-action?color=%233D3D4&style=flat)]
5+
[![Stars](https://img.shields.io/github/stars/juliocabrera820/publish-ruby-gem-action?color=233D3D4&style=flat)](https://github.com/juliocabrera820/publish-ruby-gem-action/stargazers)
6+
37
Action that builds a gem based on a gemspec and publishes to GitHub packages or Rubygems
48

59
## Usage
@@ -9,7 +13,7 @@ Action that builds a gem based on a gemspec and publishes to GitHub packages or
913
- name: Publish gem to rubygems or gh packages
1014
uses: juliocabrera820/publish-ruby-gem-action@v1
1115
with:
12-
github_token: ${{secrets.GITHUB_TOKEN}} # optional
13-
rubygems_api_key: ${{secrets.RUBYGEMS_API_KEY}} # optional
16+
github_token: ${{secrets.GITHUB_TOKEN}}
17+
rubygems_api_key: ${{secrets.RUBYGEMS_API_KEY}}
1418
github_username: octocat # optional: default value is your username in github
1519
```

credentials.rb

-10
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,6 @@
66

77
# Module to handle credentials
88
module Credentials
9-
def self.add_gh_credentials
10-
credentials = ":github: Bearer #{Inputs.github_token}"
11-
write_credentials(credentials)
12-
end
13-
14-
def self.add_rubygems_credentials
15-
credentials = ":rubygems_api_key: #{Inputs.rubygems_api_key}"
16-
write_credentials(credentials)
17-
end
18-
199
def self.generate_credentials_file
2010
FileUtils.mkdir_p(gems_path)
2111
file_start = "---\n"

github_packages.rb

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# frozen_string_literal: true
2+
3+
require_relative 'credentials'
4+
require_relative 'inputs'
5+
6+
# Module to handle GitHub Packages
7+
module GithubPackages
8+
def self.generate_credentials
9+
content = ":github: Bearer #{Inputs.github_token}"
10+
Credentials.write_credentials(content)
11+
end
12+
13+
def self.github_url
14+
"https://rubygems.pkg.github.com/#{Inputs.github_username}"
15+
end
16+
end

main.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@
33
require_relative 'credentials'
44
require_relative 'gem_builder'
55
require_relative 'inputs'
6-
require_relative 'publish'
6+
require_relative 'publisher'
77

88
begin
99
GemBuilder.build
1010
Credentials.generate_credentials_file
11-
Publish.to_rubygems if Inputs.rubygems_api_key?
12-
Publish.to_github_packages if Inputs.github_token?
11+
Publisher.to_rubygems if Inputs.rubygems_api_key?
12+
Publisher.to_github_packages if Inputs.github_token?
1313
ensure
1414
Credentials.delete_credentials_file_path
1515
end

publish.rb publisher.rb

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,30 @@
11
# frozen_string_literal: true
22

33
require_relative 'command_system'
4+
require_relative 'github_packages'
45
require_relative 'inputs'
5-
require_relative 'credentials'
6+
require_relative 'publisher'
7+
require_relative 'rubygems'
68

79
# Module for publishing gems to Rubygems or GitHub Packages
8-
module Publish
10+
module Publisher
911
GEM_EXTENSION = '*.gem'
1012

11-
def self.to_rubygems
12-
Credentials.add_rubygems_credentials
13+
def self.publish_to_rubygems
14+
Rubygems.generate_credentials
1315
gems = check_gem_files
1416

1517
gems.each do |gem_file|
1618
CommandSystem.run_command('gem', 'push', gem_file)
1719
end
1820
end
1921

20-
def self.to_github_packages
21-
Credentials.add_gh_credentials
22+
def self.publish_to_github_packages
23+
GithubPackages.generate_credentials
2224
gems = check_gem_files
2325

2426
gems.each do |gem_file|
25-
CommandSystem.run_command('gem', 'push', gem_file, '--key', 'github', '--host', github_url)
27+
CommandSystem.run_command('gem', 'push', gem_file, '--key', 'github', '--host', GithubPackages.github_url)
2628
end
2729
end
2830

@@ -32,8 +34,4 @@ def self.check_gem_files
3234

3335
gems
3436
end
35-
36-
def self.github_url
37-
"https://rubygems.pkg.github.com/#{Inputs.github_username}"
38-
end
3937
end

rubygems.rb

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# frozen_string_literal: true
2+
3+
require_relative 'credentials'
4+
require_relative 'inputs'
5+
6+
# Module to handle rubygems
7+
module Rubygems
8+
def self.generate_credentials
9+
content = ":rubygems_api_key: #{Inputs.rubygems_api_key}"
10+
Credentials.write_credentials(content)
11+
end
12+
end

0 commit comments

Comments
 (0)