mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 21:37:56 +00:00
6d0f9df65a
Small oversight, realised I was checking `git log version..old_version` rather than the other way round. Not sure how this slipped through
86 lines
2.5 KiB
Ruby
86 lines
2.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'changelogerator'
|
|
require 'git'
|
|
require 'erb'
|
|
require 'toml'
|
|
require 'json'
|
|
require_relative './lib.rb'
|
|
|
|
version = ENV['GITHUB_REF']
|
|
token = ENV['GITHUB_TOKEN']
|
|
|
|
polkadot_path = ENV['GITHUB_WORKSPACE'] + '/polkadot/'
|
|
pg = Git.open(polkadot_path)
|
|
|
|
# Generate an ERB renderer based on the template .erb file
|
|
renderer = ERB.new(
|
|
File.read(ENV['GITHUB_WORKSPACE'] + '/polkadot/scripts/github/polkadot_release.erb'),
|
|
trim_mode: '<>'
|
|
)
|
|
|
|
# get last polkadot version. Use handy Gem::Version for sorting by version
|
|
last_version = pg
|
|
.tags
|
|
.map(&:name)
|
|
.grep(/^v\d+\.\d+\.\d+.*$/)
|
|
.sort_by { |v| Gem::Version.new(v.slice(1...)) }[-2]
|
|
|
|
polkadot_cl = Changelog.new(
|
|
'paritytech/polkadot', last_version, version, token: token
|
|
)
|
|
|
|
# Get prev and cur substrate SHAs - parse the old and current Cargo.lock for
|
|
# polkadot and extract the sha that way.
|
|
prev_cargo = TOML::Parser.new(pg.show("#{last_version}:Cargo.lock")).parsed
|
|
current_cargo = TOML::Parser.new(pg.show("#{version}:Cargo.lock")).parsed
|
|
|
|
substrate_prev_sha = prev_cargo['package']
|
|
.find { |p| p['name'] == 'sc-cli' }['source']
|
|
.split('#').last
|
|
|
|
substrate_cur_sha = current_cargo['package']
|
|
.find { |p| p['name'] == 'sc-cli' }['source']
|
|
.split('#').last
|
|
|
|
substrate_cl = Changelog.new(
|
|
'paritytech/substrate', substrate_prev_sha, substrate_cur_sha,
|
|
token: token,
|
|
prefix: true
|
|
)
|
|
|
|
all_changes = polkadot_cl.changes + substrate_cl.changes
|
|
|
|
# Set all the variables needed for a release
|
|
|
|
misc_changes = Changelog.changes_with_label(all_changes, 'B1-releasenotes')
|
|
client_changes = Changelog.changes_with_label(all_changes, 'B5-clientnoteworthy')
|
|
runtime_changes = Changelog.changes_with_label(all_changes, 'B7-runtimenoteworthy')
|
|
|
|
release_priority = Changelog.highest_priority_for_changes(all_changes)
|
|
|
|
# Pulled from the previous Github step
|
|
rustc_stable = ENV['RUSTC_STABLE']
|
|
rustc_nightly = ENV['RUSTC_NIGHTLY']
|
|
|
|
polkadot_runtime = get_runtime('polkadot', polkadot_path)
|
|
kusama_runtime = get_runtime('kusama', polkadot_path)
|
|
westend_runtime = get_runtime('westend', polkadot_path)
|
|
|
|
# These json files should have been downloaded as part of the build-runtimes
|
|
# github action
|
|
|
|
polkadot_json = JSON.parse(
|
|
File.read(
|
|
ENV['GITHUB_WORKSPACE'] + '/polkadot-srtool-json/srtool_output.json'
|
|
)
|
|
)
|
|
|
|
kusama_json = JSON.parse(
|
|
File.read(
|
|
ENV['GITHUB_WORKSPACE'] + '/kusama-srtool-json/srtool_output.json'
|
|
)
|
|
)
|
|
|
|
puts renderer.result
|