terraspace_ci_github 0.1.1 → 0.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 +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +1 -1
- data/lib/template/.github/bin/install +7 -0
- data/lib/template/.github/workflows/pull_request.yml.tt +2 -2
- data/lib/template/.github/workflows/push.yml.tt +2 -2
- data/lib/template/.github/workflows/workflow_dispatch.yml.tt +2 -2
- data/lib/template/partials/init_steps.yml +1 -1
- data/lib/terraspace_ci_github/base.rb +2 -0
- data/lib/terraspace_ci_github/interface.rb +3 -0
- data/lib/terraspace_ci_github/pr.rb +14 -2
- data/lib/terraspace_ci_github/vars.rb +27 -2
- data/lib/terraspace_ci_github/version.rb +1 -1
- data/terraspace_ci_github.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed3862589c53aacc52e4ef608a40dfc2c497e975972dd4873d14a2187308812a
|
4
|
+
data.tar.gz: f141392dd32495f4ba7297848713a44bb845de03f22881f85afdcd293f06c5f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a7fe5e22a954b75c84d6a8f0f7d0f4b87dc90a79c0b00dafd85dffc868f7e01bd5467091e78822ac62be3728d9af7c1ffb3dffeeba34a45a79eec5f5dd01cce
|
7
|
+
data.tar.gz: 55f8b17d8cfe9492202792b475ee77ba31dc319310bb29c10c522d6f25ddac0d7d6feb2902018b11f0fcd397b283c4cc350231c5cff62abedac952fd4d36ada6
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,17 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/).
|
5
5
|
|
6
|
+
## [0.2.0] - 2022-07-11
|
7
|
+
- [#3](https://github.com/boltops-tools/terraspace_ci_github/pull/3) Cost support: install infracost
|
8
|
+
- [#4](https://github.com/boltops-tools/terraspace_ci_github/pull/4) Deprecate comment interface method
|
9
|
+
- update template: use github.token from github actions ci env instead
|
10
|
+
|
11
|
+
## [0.1.3] - 2022-06-15
|
12
|
+
- [#2](https://github.com/boltops-tools/terraspace_ci_github/pull/2) get pr url from push commit message
|
13
|
+
|
14
|
+
## [0.1.2] - 2022-06-15
|
15
|
+
- [#1](https://github.com/boltops-tools/terraspace_ci_github/pull/1) add faraday-retry gem to get rid of warning
|
16
|
+
|
6
17
|
## [0.1.1] - 2022-06-09
|
7
18
|
|
8
19
|
- Fix branch name
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# terraspace_ci_github
|
2
2
|
|
3
|
-
[](http://badge.fury.io/rb/terraspace_ci_github)
|
4
4
|
|
5
5
|
[](https://www.boltops.com)
|
6
6
|
|
@@ -1,8 +1,15 @@
|
|
1
1
|
#!/bin/bash
|
2
|
+
|
3
|
+
# install terraform
|
2
4
|
brew install tfenv
|
3
5
|
tfenv install latest
|
4
6
|
tfenv use latest
|
5
7
|
terraform --version
|
8
|
+
|
9
|
+
# install terraspace
|
6
10
|
bundle install
|
7
11
|
bundle exec terraspace new shim
|
8
12
|
terraspace --version
|
13
|
+
|
14
|
+
# install infracost
|
15
|
+
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
|
@@ -9,13 +9,13 @@ jobs:
|
|
9
9
|
|
10
10
|
env:
|
11
11
|
<%= plugin_env_vars(indent: 6) -%>
|
12
|
-
GH_TOKEN: ${{
|
12
|
+
GH_TOKEN: ${{ github.token }}
|
13
13
|
TS_ENV: dev
|
14
14
|
TS_TOKEN: ${{ secrets.TS_TOKEN }}
|
15
15
|
|
16
16
|
steps:
|
17
17
|
<%= partial "init_steps.yml" -%>
|
18
18
|
|
19
|
-
- name: Terraspace
|
19
|
+
- name: Run Terraspace
|
20
20
|
run: |
|
21
21
|
terraspace plan demo
|
@@ -11,13 +11,13 @@ jobs:
|
|
11
11
|
|
12
12
|
env:
|
13
13
|
<%= plugin_env_vars(indent: 6) -%>
|
14
|
-
GH_TOKEN: ${{
|
14
|
+
GH_TOKEN: ${{ github.token }}
|
15
15
|
TS_ENV: dev
|
16
16
|
TS_TOKEN: ${{ secrets.TS_TOKEN }}
|
17
17
|
|
18
18
|
steps:
|
19
19
|
<%= partial "init_steps.yml" -%>
|
20
20
|
|
21
|
-
- name: Terraspace
|
21
|
+
- name: Run Terraspace
|
22
22
|
run: |
|
23
23
|
terraspace up demo -y
|
@@ -18,13 +18,13 @@ jobs:
|
|
18
18
|
|
19
19
|
env:
|
20
20
|
<%= plugin_env_vars(indent: 6) -%>
|
21
|
-
GH_TOKEN: ${{
|
21
|
+
GH_TOKEN: ${{ github.token }}
|
22
22
|
TS_ENV: ${{ github.event.inputs.env }}
|
23
23
|
TS_TOKEN: ${{ secrets.TS_TOKEN }}
|
24
24
|
|
25
25
|
steps:
|
26
26
|
<%= partial "init_steps.yml" -%>
|
27
27
|
|
28
|
-
- name: Terraspace
|
28
|
+
- name: Run Terraspace
|
29
29
|
run: |
|
30
30
|
terraspace ${{ github.event.inputs.command }} -y
|
@@ -7,6 +7,9 @@ module TerraspaceCiGithub
|
|
7
7
|
|
8
8
|
# optional interface
|
9
9
|
def comment(url)
|
10
|
+
puts "DEPRECATED: The comment interface has been replaced by the terraspace_vcs_github gem."
|
11
|
+
puts "Please upgrade your terraspace install and add terraspace_vcs_github to your Terraspace project Gemfile."
|
12
|
+
puts "The comment interface method will be removed from terraspace."
|
10
13
|
Pr.new.comment(url)
|
11
14
|
end
|
12
15
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module TerraspaceCiGithub
|
2
2
|
class Pr < Base
|
3
3
|
def comment(url)
|
4
|
-
return unless
|
4
|
+
return unless pull_request_available?
|
5
5
|
return unless github_token?
|
6
6
|
|
7
7
|
repo = ENV['GITHUB_REPOSITORY'] # org/repo
|
8
|
-
number =
|
8
|
+
number = pr_number
|
9
9
|
marker = "<!-- terraspace marker -->"
|
10
10
|
body = marker + "\n"
|
11
11
|
body << "Terraspace Cloud Url #{url}"
|
@@ -25,5 +25,17 @@ module TerraspaceCiGithub
|
|
25
25
|
rescue Octokit::Unauthorized => e
|
26
26
|
puts "WARN: #{e.message}. Unable to create pull request comment. Please double check your github token"
|
27
27
|
end
|
28
|
+
|
29
|
+
def pull_request_available?
|
30
|
+
!!pr_number
|
31
|
+
end
|
32
|
+
|
33
|
+
def pr_number
|
34
|
+
if ENV['GITHUB_EVENT_NAME'] == 'pull_request'
|
35
|
+
ENV['GITHUB_REF_NAME'].split('/').first # IE: 2/merge
|
36
|
+
else
|
37
|
+
Vars.new.pr_number
|
38
|
+
end
|
39
|
+
end
|
28
40
|
end
|
29
41
|
end
|
@@ -10,9 +10,10 @@ module TerraspaceCiGithub
|
|
10
10
|
# urls
|
11
11
|
pr_url: pr_url,
|
12
12
|
build_url: build_url,
|
13
|
+
branch_url: branch_url,
|
13
14
|
# additional properties
|
14
15
|
build_type: build_type, # required IE: pull_request or push
|
15
|
-
pr_number:
|
16
|
+
pr_number: pr_number, # set when build_type=pull_request
|
16
17
|
sha: sha,
|
17
18
|
# additional properties
|
18
19
|
commit_message: commit_message,
|
@@ -25,8 +26,31 @@ module TerraspaceCiGithub
|
|
25
26
|
ENV['GITHUB_SERVER_URL'] || 'https://github.com'
|
26
27
|
end
|
27
28
|
|
29
|
+
def branch_url
|
30
|
+
"#{host}/#{full_repo}/tree/#{branch_name}" if branch_name
|
31
|
+
end
|
32
|
+
|
33
|
+
COMMIT_PATTERN = %r{Merge pull request #(\d) from (.*)}
|
28
34
|
def pr_url
|
29
|
-
|
35
|
+
if pr['number']
|
36
|
+
"#{host}/#{full_repo}/pull/#{pr['number']}"
|
37
|
+
elsif md = commit_message.match(COMMIT_PATTERN)
|
38
|
+
# git push commit has commit with PR info
|
39
|
+
# IE: Merge pull request #4 from tongueroo/feature
|
40
|
+
number = md[1]
|
41
|
+
org_branch = md[2]
|
42
|
+
org = org_branch.split('/').first
|
43
|
+
repo = ENV['GITHUB_REPOSITORY'].split('/').last # IE: tongueroo/infra-ci
|
44
|
+
"#{host}/#{org}/#{repo}/pull/#{number}"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def pr_number
|
49
|
+
if pr['number']
|
50
|
+
pr['number']
|
51
|
+
elsif md = commit_message.match(COMMIT_PATTERN)
|
52
|
+
md[1] # number
|
53
|
+
end
|
30
54
|
end
|
31
55
|
|
32
56
|
def build_url
|
@@ -46,6 +70,7 @@ module TerraspaceCiGithub
|
|
46
70
|
rescue Octokit::Unauthorized => e
|
47
71
|
puts "WARN: #{e.message}. Error getting commit message. Please double check your github token"
|
48
72
|
end
|
73
|
+
memoize :commit_message
|
49
74
|
|
50
75
|
def full_repo
|
51
76
|
ENV['GITHUB_REPOSITORY']
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ["lib"]
|
30
30
|
|
31
|
+
spec.add_dependency "faraday-retry"
|
31
32
|
spec.add_dependency "memoist"
|
32
33
|
spec.add_dependency "octokit"
|
33
34
|
spec.add_dependency "zeitwerk"
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terraspace_ci_github
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-07-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: faraday-retry
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: memoist
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|