mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-27 04:37:57 +00:00
242c111099
* WIP * More fixes * Add API section and various fixes
165 lines
6.2 KiB
Ruby
Executable File
165 lines
6.2 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# frozen_string_literal: true
|
|
|
|
# call for instance as:
|
|
# ./bin/changelog statemine-v5.0.0
|
|
#
|
|
# You may set the ENV NO_CACHE to force fetching from Github
|
|
# You should also ensure you set the ENV: GITHUB_TOKEN
|
|
|
|
require_relative '../lib/changelog'
|
|
require 'logger'
|
|
|
|
logger = Logger.new($stdout)
|
|
logger.level = Logger::DEBUG
|
|
logger.debug('Starting')
|
|
|
|
changelogerator_version = `changelogerator --version`
|
|
logger.debug(changelogerator_version)
|
|
|
|
owner = 'paritytech'
|
|
repo = 'cumulus'
|
|
ref1 = ARGV[0]
|
|
ref2 = ARGV[1] || 'HEAD'
|
|
output = ARGV[2] || 'release-notes.md'
|
|
|
|
ENV['REF1'] = ref1
|
|
ENV['REF2'] = ref2
|
|
|
|
gh_cumulus = SubRef.new(format('%<owner>s/%<repo>s', { owner: owner, repo: repo }))
|
|
|
|
polkadot_ref1 = gh_cumulus.get_dependency_reference(ref1, 'polkadot-client')
|
|
polkadot_ref2 = gh_cumulus.get_dependency_reference(ref2, 'polkadot-client')
|
|
|
|
substrate_ref1 = gh_cumulus.get_dependency_reference(ref1, 'sp-io')
|
|
substrate_ref2 = gh_cumulus.get_dependency_reference(ref2, 'sp-io')
|
|
|
|
logger.debug("Cumulus from: #{ref1}")
|
|
logger.debug("Cumulus to: #{ref2}")
|
|
|
|
logger.debug("Polkadot from: #{polkadot_ref1}")
|
|
logger.debug("Polkadot to: #{polkadot_ref2}")
|
|
|
|
logger.debug("Substrate from: #{substrate_ref1}")
|
|
logger.debug("Substrate to: #{substrate_ref2}")
|
|
|
|
cumulus_data = 'cumulus.json'
|
|
substrate_data = 'substrate.json'
|
|
polkadot_data = 'polkadot.json'
|
|
|
|
logger.debug("Using CUMULUS: #{cumulus_data}")
|
|
logger.debug("Using SUBSTRATE: #{substrate_data}")
|
|
logger.debug("Using POLKADOT: #{polkadot_data}")
|
|
|
|
logger.warn('NO_CACHE set') if ENV['NO_CACHE']
|
|
|
|
# This is acting as cache so we don't spend time querying while testing
|
|
if ENV['NO_CACHE'] || !File.file?(cumulus_data)
|
|
logger.debug(format('Fetching data for Cumulus into %s', cumulus_data))
|
|
cmd = format('changelogerator %<owner>s/%<repo>s -f %<from>s -t %<to>s > %<output>s',
|
|
{ owner: owner, repo: repo, from: ref1, to: ref2, output: cumulus_data })
|
|
system(cmd)
|
|
else
|
|
logger.debug("Re-using:#{cumulus_data}")
|
|
end
|
|
|
|
if ENV['NO_CACHE'] || !File.file?(polkadot_data)
|
|
logger.debug(format('Fetching data for Polkadot into %s', polkadot_data))
|
|
cmd = format('changelogerator %<owner>s/%<repo>s -f %<from>s -t %<to>s > %<output>s',
|
|
{ owner: owner, repo: 'polkadot', from: polkadot_ref1, to: polkadot_ref2, output: polkadot_data })
|
|
system(cmd)
|
|
else
|
|
logger.debug("Re-using:#{polkadot_data}")
|
|
end
|
|
|
|
if ENV['NO_CACHE'] || !File.file?(substrate_data)
|
|
logger.debug(format('Fetching data for Substrate into %s', substrate_data))
|
|
cmd = format('changelogerator %<owner>s/%<repo>s -f %<from>s -t %<to>s > %<output>s',
|
|
{ owner: owner, repo: 'substrate', from: substrate_ref1, to: substrate_ref2, output: substrate_data })
|
|
system(cmd)
|
|
else
|
|
logger.debug("Re-using:#{substrate_data}")
|
|
end
|
|
|
|
POLKADOT_COLLECTIVES_DIGEST = ENV['COLLECTIVES_POLKADOT_DIGEST'] || 'digests/collectives-polkadot-srtool-digest.json'
|
|
SHELL_DIGEST = ENV['SHELL_DIGEST'] || 'digests/shell-srtool-digest.json'
|
|
WESTMINT_DIGEST = ENV['WESTMINT_DIGEST'] || 'digests/westmint-srtool-digest.json'
|
|
STATEMINE_DIGEST = ENV['STATEMINE_DIGEST'] || 'digests/statemine-srtool-digest.json'
|
|
STATEMINT_DIGEST = ENV['STATEMINT_DIGEST'] || 'digests/statemint-srtool-digest.json'
|
|
BRIDGE_HUB_ROCOCO_DIGEST = ENV['BRIDGE_HUB_ROCOCO_DIGEST'] || 'digests/bridge-hub-rococo-srtool-digest.json'
|
|
BRIDGE_HUB_KUSAMA_DIGEST = ENV['BRIDGE_HUB_KUSAMA_DIGEST'] || 'digests/bridge-hub-kusama-srtool-digest.json'
|
|
BRIDGE_HUB_POLKADOT_DIGEST = ENV['BRIDGE_HUB_POLKADOT_DIGEST'] || 'digests/bridge-hub-polkadot-srtool-digest.json'
|
|
ROCOCO_PARA_DIGEST = ENV['ROCOCO_PARA_DIGEST'] || 'digests/rococo-parachain-srtool-digest.json'
|
|
CANVAS_KUSAMA_DIGEST = ENV['CANVAS_KUSAMA_DIGEST'] || 'digests/contracts-rococo-srtool-digest.json'
|
|
|
|
logger.debug("Release type: #{ENV['RELEASE_TYPE']}")
|
|
|
|
if ENV['RELEASE_TYPE'] && ENV['RELEASE_TYPE'] == 'client'
|
|
logger.debug('Building changelog without runtimes')
|
|
cmd = format('jq \
|
|
--slurpfile cumulus %s \
|
|
--slurpfile substrate %s \
|
|
--slurpfile polkadot %s \
|
|
-n \'{
|
|
cumulus: $cumulus[0],
|
|
substrate: $substrate[0],
|
|
polkadot: $polkadot[0],
|
|
}\' > context.json', cumulus_data, substrate_data, polkadot_data,
|
|
)
|
|
else
|
|
logger.debug('Building changelog with runtimes')
|
|
|
|
# Here we compose all the pieces together into one
|
|
# single big json file.
|
|
cmd = format('jq \
|
|
--slurpfile cumulus %s \
|
|
--slurpfile substrate %s \
|
|
--slurpfile polkadot %s \
|
|
--slurpfile srtool_shell %s \
|
|
--slurpfile srtool_westmint %s \
|
|
--slurpfile srtool_statemine %s \
|
|
--slurpfile srtool_statemint %s \
|
|
--slurpfile srtool_rococo_parachain %s \
|
|
--slurpfile srtool_contracts_rococo %s \
|
|
--slurpfile srtool_polkadot_collectives %s \
|
|
--slurpfile srtool_bridge_hub_rococo %s \
|
|
--slurpfile srtool_bridge_hub_kusama %s \
|
|
--slurpfile srtool_bridge_hub_polkadot %s \
|
|
-n \'{
|
|
cumulus: $cumulus[0],
|
|
substrate: $substrate[0],
|
|
polkadot: $polkadot[0],
|
|
srtool: [
|
|
{ name: "shell", data: $srtool_shell[0] },
|
|
{ name: "westmint", data: $srtool_westmint[0] },
|
|
{ name: "statemine", data: $srtool_statemine[0] },
|
|
{ name: "statemint", data: $srtool_statemint[0] },
|
|
{ name: "rococo", data: $srtool_rococo_parachain[0] },
|
|
{ name: "contracts", data: $srtool_contracts_rococo[0] },
|
|
{ name: "polkadot-collectives", data: $srtool_polkadot_collectives[0] },
|
|
{ name: "bridge-hub-rococo", data: $srtool_bridge_hub_rococo[0] },
|
|
{ name: "bridge-hub-kusama", data: $srtool_bridge_hub_kusama[0] },
|
|
{ name: "bridge-hub-polkadot", data: $srtool_bridge_hub_polkadot[0] }
|
|
] }\' > context.json',
|
|
cumulus_data,
|
|
substrate_data,
|
|
polkadot_data,
|
|
SHELL_DIGEST,
|
|
WESTMINT_DIGEST,
|
|
STATEMINE_DIGEST,
|
|
STATEMINT_DIGEST,
|
|
ROCOCO_PARA_DIGEST,
|
|
CANVAS_KUSAMA_DIGEST,
|
|
POLKADOT_COLLECTIVES_DIGEST,
|
|
BRIDGE_HUB_ROCOCO_DIGEST,
|
|
BRIDGE_HUB_KUSAMA_DIGEST,
|
|
BRIDGE_HUB_POLKADOT_DIGEST
|
|
)
|
|
end
|
|
system(cmd)
|
|
|
|
cmd = format('tera --env --env-key env --include-path templates \
|
|
--template templates/template.md.tera context.json > %s', output)
|
|
system(cmd)
|