This commit is contained in:
Nemo
2022-04-26 20:18:37 +05:30
parent 8c0ccd2c24
commit 2724ebbbc0
2 changed files with 30 additions and 1 deletions

View File

@@ -42,8 +42,9 @@ jobs:
git config --global init.defaultBranch main
git config --global extensions.partialClone true
bundle exec ruby update.rb ./website ~/.cache releases
id: update_releases
- uses: stefanzweifel/git-auto-commit-action@v4
name: Commit and update new releases
with:
commit_message: Update Releases
commit_message: ${{ fromJSON(steps.update_releases.outputs.commit_message)}}
commit_author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'

View File

@@ -1,4 +1,5 @@
require 'yaml'
require 'set'
require 'date'
require 'json'
require 'rugged'
@@ -68,6 +69,26 @@ def get_output_file(ecosystem, product)
"#{OUTPUT_DIR}/#{ecosystem}/#{product}.json"
end
def generate_commit_message
products = Set.new
ret = nil
msg = ""
r = Rugged::Repository.new '.'
r.status() do |f, s|
p = Pathname.new(f).dirname
if p.to_s === 'releases/git'
ret = true
product = File.basename(f, '.json')
products << product
old_version_list = JSON.parse(r.blob_at(r.head.target.oid, f).content).keys.to_set
new_version_list = JSON.parse(File.read(f)).keys.to_set
new_versions = (new_version_list - old_version_list)
msg += "#{product}: #{new_versions.join(', ')}"
end
end
ret ? "Updates: #{products.join(', ')}\n\n#{msg}": false
end
Dir.glob("#{WEBSITE_DIR}/products/*.md").each do |product_file|
data = YAML.safe_load_file product_file, permitted_classes: [Date]
next unless data['auto']
@@ -81,3 +102,10 @@ Dir.glob("#{WEBSITE_DIR}/products/*.md").each do |product_file|
update_git_releases(get_cache_dir('git', product), get_output_file('git', product), data['auto'])
end
end
def github_actions_step_output(msg)
puts "::set-output name=commit_message::#{JSON.dump(msg)}"
end
msg = generate_commit_message
github_actions_step_output(msg) if msg