const os = require('os')
// this script unbundles the published packages output
// from changesets action to a key-value pair to be used
// with our publishing CI workflow
data = process.argv[2]
data = JSON.parse(data)
// Packages that do not depend on the builder.
// There are more packages that depend on the
// builder than not, so keep track of this list instead
const nonBuilders = new Set([
'l2geth',
'gas-oracle',
])
builder = false
for (const i of data) {
const name = i.name.replace("@eth-optimism/", "")
if (!nonBuilders.has(name)) {
builder = true
}
const version = i.version
process.stdout.write(`::set-output name=${name}::${version}` + os.EOL)
}
if (builder) {
process.stdout.write(`::set-output name=builder::true` + os.EOL)
}
-
Mark Tyneway authored
This PR updates the `ops/scripts/ci-versions.js` file to skip building the builder image for when there are changes to the `gas-oracle`. The `builder` contains all of the JS code required for the various typescript based services. This PR also publishes `ethereumoptimism/gas-oracle:latest`. It is faster to `docker pull` than `docker build`. This will speed up the workflow for developers building locally against the `docker compose` setup as well as the CI if it is refactored to pull the `latest` images for the unchanged images instead of building them from scratch.
663efb3e