Skip to content

Commit 14a4175

Browse files
Merge pull request #20 from deployhq/config-files-deployment
Config Files Deployment
2 parents 98b0898 + 57a9f11 commit 14a4175

File tree

7 files changed

+40
-17
lines changed

7 files changed

+40
-17
lines changed

.github/workflows/ci.yml

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ jobs:
55
lint:
66
runs-on: ubuntu-latest
77
steps:
8-
- uses: actions/checkout@v3
8+
- uses: actions/checkout@v4
99
- uses: ruby/setup-ruby@v1
1010
with:
11-
ruby-version: 3.1
11+
ruby-version: 3.4.1
1212
- name: Install dependencies
1313
run: bundle install
1414
- name: Run linter
@@ -21,22 +21,19 @@ jobs:
2121
release_created: ${{ steps.release-please.outputs.release_created }}
2222
version: ${{ steps.release-please.outputs.version }}
2323
steps:
24-
- uses: krystal/release-please-manifest-action@v1
24+
- uses: googleapis/release-please-action@v4
2525
id: release-please
26-
with:
27-
app-id: ${{ vars.RELEASE_PLEASE_GITHUB_APP_ID }}
28-
private-key: ${{ secrets.RELEASE_PLEASE_GITHUB_APP_PRIVATE_KEY }}
2926

3027
release:
3128
runs-on: ubuntu-latest
3229
needs: [lint, release-please]
33-
if: needs.release-please.outputs.release_created
30+
if: ${{ needs.release-please.outputs.release_created }}
3431
steps:
35-
- uses: actions/checkout@v3
32+
- uses: actions/checkout@v4
3633
- name: Set up Ruby
37-
uses: actions/setup-ruby@v1
34+
uses: ruby/setup-ruby@v1
3835
with:
39-
ruby-version: 3.1
36+
ruby-version: 3.4.1
4037
- name: Export version from tag name
4138
run: echo "${{ needs.release-please.outputs.version }}" > VERSION
4239
- name: Build Gem
@@ -48,7 +45,7 @@ jobs:
4845
chmod 0600 $HOME/.gem/credentials
4946
printf -- "---\n:rubygems_api_key: ${RUBYGEMS_API_KEY}\n" > $HOME/.gem/credentials
5047
env:
51-
RUBYGEMS_API_KEY: ${{secrets.KRYSTAL_RUBYGEMS_API_KEY}}
48+
RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
5249
- name: Publish to RubyGems
5350
run: |
5451
gem push *.gem
File renamed without changes.

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,13 @@ Waiting for deployment capacity......
6767

6868
The CLI client in particular is a bit experimental, and not yet finished. Any
6969
pull-requests to improve it would be greatly welcomed.
70+
71+
## Release
72+
73+
This project uses [Google's release-please](https://github.com/googleapis/release-please) action which automates CHANGELOG generation, the creation of GitHub releases, and version bumps.
74+
75+
**Commit messages are important!**
76+
77+
`release-please` assumes that you are following the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) specification.
78+
This means that your commit messages should be structured in a way that release-please can determine the type of change that has been made.
79+
Please refer to the ["How should I write my commits"](https://github.com/googleapis/release-please?tab=readme-ov-file#how-should-i-write-my-commits) documentation.

lib/deploy/cli.rb

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
require 'deploy/cli/websocket_client'
88
require 'deploy/cli/deployment_progress_output'
99

10-
OptionsStruct = Struct.new(:config_file, :project)
10+
OptionsStruct = Struct.new(:config_file, :project, :config_files_deployment)
1111

1212
# rubocop:disable Metrics/ClassLength
1313
# rubocop:disable Metrics/AbcSize
@@ -25,7 +25,7 @@ class << self
2525
def invoke(args)
2626
@options = OptionsStruct.new
2727

28-
parser = OptionParser.new do |opts|
28+
parser = OptionParser.new do |opts| # rubocop:disable Metrics/BlockLength
2929
opts.banner = 'Usage: deployhq [options] command'
3030
opts.separator ''
3131
opts.separator 'Commands:'
@@ -45,6 +45,11 @@ def invoke(args)
4545
@options.project = project_permalink
4646
end
4747

48+
@options.config_files_deployment = false
49+
opts.on('--config-files', 'Config files deployment') do |_config_files_deployment|
50+
@options.config_files_deployment = true
51+
end
52+
4853
opts.on_tail('-v', '--version', 'Shows Version') do
4954
puts Deploy::VERSION
5055
exit
@@ -127,8 +132,14 @@ def deploy
127132
end
128133
end
129134

130-
latest_revision = @project.latest_revision(parent.preferred_branch)
131-
deployment = @project.deploy(parent.identifier, parent.last_revision, latest_revision)
135+
if @options.config_files_deployment
136+
$stdout.print "\nStarting config files deployment\n"
137+
deployment = @project.config_files_deployment(parent.identifier)
138+
else
139+
$stdout.print "\nStarting deployment\n"
140+
latest_revision = @project.latest_revision(parent.preferred_branch)
141+
deployment = @project.deploy(parent.identifier, parent.last_revision, latest_revision)
142+
end
132143

133144
$stdout.print 'Waiting for an available deployment slot...'
134145
DeploymentProgressOutput.new(deployment).monitor

lib/deploy/cli/websocket_client.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ def authenticate
9595
end
9696

9797
def request_subscriptions
98-
subscriptions.each do |_key, subscription|
98+
subscriptions.each_value do |subscription|
9999
send('Subscribe', exchange: subscription.exchange, routing_key: subscription.routing_key)
100100
end
101101
end

lib/deploy/resources/project.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,17 @@ def latest_revision(branch = '')
2121
end
2222

2323
# Create a deployment in this project (and queue it to run)
24-
def deploy(server, start_revision, end_revision)
24+
def deploy(server, start_revision, end_revision, config_files_only: false)
2525
run_deployment(server, start_revision, end_revision) do |d|
2626
d.mode = 'queue'
27+
d.config_files_deployment = '1' if config_files_only
2728
end
2829
end
2930

31+
def config_files_deployment(server)
32+
deploy(server, nil, nil, config_files_only: true)
33+
end
34+
3035
# Create a deployment preview
3136
def preview(server, start_revision, end_revision)
3237
run_deployment(server, start_revision, end_revision) do |d|
File renamed without changes.

0 commit comments

Comments
 (0)