gha_config 0.13 → 0.18
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/.github/workflows/CI.yml +0 -25
- data/CHANGELOG.md +16 -0
- data/Gemfile.lock +1 -1
- data/README.md +16 -1
- data/bin/gha_config +0 -1
- data/lib/gha_config/config.rb +2 -0
- data/lib/gha_config/parser.rb +2 -3
- data/lib/gha_config/version.rb +1 -1
- data/lib/gha_config/writer.rb +29 -15
- metadata +2 -3
- data/.github/workflow-src +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dedc710facebd9c6ac3826132d29dabfa49304d6bb41ba6e143659611ea6f2f
|
4
|
+
data.tar.gz: eebaf08f4252ab8796b005732ed87745e9dea1978ad739fa8a25cd6417a40eed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96212938458677189ca1576df3ec259e917e5b62455bb61c05e95c303588e9a78a69808dd3690fd564779032acf6a42586a4ed98d3adba2b3fed4efaa5aaf291
|
7
|
+
data.tar.gz: 156081246d3e7c70254f2ac1fea31006abe69ed0b2f9fea6ccf9ce3b127f2c5eac615f70c323c3401bed3e8942328915977fd24ca36ef8907446c284a1cc098c
|
data/.github/workflows/CI.yml
CHANGED
@@ -41,28 +41,3 @@ jobs:
|
|
41
41
|
run: |
|
42
42
|
sudo chmod 1777 -R /home/circleci/.bundle && bundle config path 'vendor/bundle' && bundle install --jobs=4
|
43
43
|
|
44
|
-
deploy-gem:
|
45
|
-
runs-on: [ubuntu, runner-fleet]
|
46
|
-
needs: [build]
|
47
|
-
container:
|
48
|
-
image: ghcr.io/wishabi/ci-build-environment:ruby-3.0-buster
|
49
|
-
credentials:
|
50
|
-
username: ${{ github.repository_owner }}
|
51
|
-
password: ${{ secrets.GHCR_TOKEN }}
|
52
|
-
if: github.ref == 'refs/heads/main'
|
53
|
-
steps:
|
54
|
-
- name: Checkout code
|
55
|
-
uses: actions/checkout@v2
|
56
|
-
- name: Bundle cache
|
57
|
-
uses: actions/cache@v1
|
58
|
-
with:
|
59
|
-
path: vendor/bundle
|
60
|
-
key: rails-{{ arch }}-{{ checksum "Gemfile.lock" }}
|
61
|
-
restore-keys: rails-{{ arch }}-
|
62
|
-
- name: Bundle install
|
63
|
-
run: |
|
64
|
-
sudo chmod 1777 -R /home/circleci/.bundle && bundle config path 'vendor/bundle' && bundle install --jobs=4
|
65
|
-
- name: Deploy to production
|
66
|
-
run: |
|
67
|
-
chmod +x ./deploy/artifactory.sh && ./deploy/artifactory.sh
|
68
|
-
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
7
7
|
|
8
|
+
## [0.18] - 2021-08-06
|
9
|
+
- Add `_options_` for submodules and SSH.
|
10
|
+
|
11
|
+
## [0.17] - 2021-08-04
|
12
|
+
- Adds submodules to checkout action
|
13
|
+
|
14
|
+
## [0.16] - 2021-07-27
|
15
|
+
- Remove dependency on activesupport and byebug
|
16
|
+
- Auto-create directory if it doesn't exist
|
17
|
+
|
18
|
+
## [0.15] - 2021-07-27
|
19
|
+
- Fix bug where defaults are not given (uses [] instead of {})
|
20
|
+
|
21
|
+
## [0.14] - 2021-07-22
|
22
|
+
- Update global action to v0.4
|
23
|
+
|
8
24
|
## [0.13] - 2021-07-19
|
9
25
|
- Fixes related to global action
|
10
26
|
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -33,7 +33,7 @@ on:
|
|
33
33
|
- master
|
34
34
|
- develop
|
35
35
|
|
36
|
-
|
36
|
+
_defaults_:
|
37
37
|
_container_:
|
38
38
|
image: ghcr.io/wishabi/ci-build-environment:ruby-3.0-buster-node
|
39
39
|
credentials:
|
@@ -131,6 +131,21 @@ Templates get expanded into their contents whenever they are used. Templates can
|
|
131
131
|
|
132
132
|
If you're using Ruby, you can add this gem to your app Gemfile. Otherwise, you can install it locally. Either way, you can re-run it whenever your "source workflow" changes.
|
133
133
|
|
134
|
+
### Special options
|
135
|
+
|
136
|
+
In addition to `_defaults_`, there are other options that will affect how the output of certain steps is emitted. These options are parsed from the `_options_` key:
|
137
|
+
|
138
|
+
```yaml
|
139
|
+
_options_:
|
140
|
+
use_submodules: true
|
141
|
+
enable_ssh: true
|
142
|
+
```
|
143
|
+
|
144
|
+
* `use_submodules`: If this is set it will check out code recursively with submodules. This requires two things:
|
145
|
+
* A secret called `FLIPPCIRCLECIPULLER_REPO_TOKEN` - Eng Cap will need to add this
|
146
|
+
* Your repo needs to have a Git version > 2.18
|
147
|
+
* `enable_ssh`: If set to true, the Flipp global action will have SSH enabled on failures. This should generally only be set to true while debugging things.
|
148
|
+
|
134
149
|
## Contributing
|
135
150
|
|
136
151
|
Pull requests are welcome!
|
data/bin/gha_config
CHANGED
data/lib/gha_config/config.rb
CHANGED
data/lib/gha_config/parser.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'byebug'
|
2
|
-
|
3
1
|
module GhaConfig
|
4
2
|
module Parser
|
5
3
|
def self.parse(input_file)
|
@@ -7,7 +5,8 @@ module GhaConfig
|
|
7
5
|
input.gsub!(/(^|\n)on:/, %(\n"on":))
|
8
6
|
hash = YAML.safe_load(input)
|
9
7
|
config = GhaConfig::Config.new
|
10
|
-
config.defaults = hash.delete('_defaults_') ||
|
8
|
+
config.defaults = hash.delete('_defaults_') || {}
|
9
|
+
config.options = hash.delete('_options_') || {}
|
11
10
|
config.env = hash.delete('env') || {}
|
12
11
|
|
13
12
|
hash['jobs'] = replace_defaults(config, hash['jobs'])
|
data/lib/gha_config/version.rb
CHANGED
data/lib/gha_config/writer.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
1
3
|
module GhaConfig
|
2
4
|
module Writer
|
3
5
|
def self.write(config, output_file)
|
@@ -33,21 +35,32 @@ module GhaConfig
|
|
33
35
|
'runs-on' => '[ubuntu, runner-fleet]'
|
34
36
|
}
|
35
37
|
job['runs-on'] = '[ubuntu, runner-fleet]'
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
38
|
+
flipp_global = {
|
39
|
+
'name' => 'Flipp global',
|
40
|
+
'uses' => 'wishabi/github-actions@v0.4',
|
41
|
+
'env' => {
|
42
|
+
'SLACK_BOT_TOKEN' => "${{ secrets.SLACK_BOT_TOKEN }}"
|
43
|
+
},
|
44
|
+
'timeout-minutes' => 10,
|
45
|
+
'with' => {
|
46
|
+
'slack_channel' => '${{env.SLACK_CHANNEL }}',
|
47
|
+
'job_status' => '${{ job.status }}'
|
48
|
+
}}
|
49
|
+
if config.options['enable_ssh']
|
50
|
+
flipp_global['env']['enable_ssh'] = true
|
51
|
+
end
|
52
|
+
job['steps'].unshift(flipp_global)
|
53
|
+
checkout = {
|
54
|
+
'name' => 'Checkout code',
|
55
|
+
'uses' => 'actions/checkout@v2'
|
56
|
+
}
|
57
|
+
if config.options['use_submodules']
|
58
|
+
checkout['with'] = {
|
59
|
+
'token' => "${{ secrets.FLIPPCIRCLECIPULLER_REPO_TOKEN || github.token }}",
|
60
|
+
'submodules' => 'recursive'
|
61
|
+
}
|
62
|
+
end
|
63
|
+
job['steps'].unshift(checkout)
|
51
64
|
job['needs'] = "[#{job['needs'].join(', ')}]" if job['needs'].is_a?(Array)
|
52
65
|
new_job.merge!(job)
|
53
66
|
output_hash['jobs'][name] = new_job
|
@@ -60,6 +73,7 @@ module GhaConfig
|
|
60
73
|
|
61
74
|
OUT
|
62
75
|
output = header + output
|
76
|
+
FileUtils.mkdir_p(File.dirname(output_file))
|
63
77
|
File.write(output_file, output)
|
64
78
|
end
|
65
79
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gha_config
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.18'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Orner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubocop
|
@@ -32,7 +32,6 @@ executables:
|
|
32
32
|
extensions: []
|
33
33
|
extra_rdoc_files: []
|
34
34
|
files:
|
35
|
-
- ".github/workflow-src"
|
36
35
|
- ".github/workflows/CI.yml"
|
37
36
|
- ".gitignore"
|
38
37
|
- ".rubocop.yml"
|