Skip to content

chore(deps): update github.com/openshift/api digest to 0e3c378 #9089

chore(deps): update github.com/openshift/api digest to 0e3c378

chore(deps): update github.com/openshift/api digest to 0e3c378 #9089

Workflow file for this run

name: k8s-diff
on: [pull_request]
jobs:
base:
name: Base
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.base.sha }}
- uses: cue-lang/[email protected]
- run: cue export ./k8s/magiclove/list.cue > list.json
- uses: actions/upload-artifact@v3
with:
name: base
path: list.json
head:
name: Head
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: cue-lang/[email protected]
- run: cue export ./k8s/magiclove/list.cue > list.json
- uses: actions/upload-artifact@v3
with:
name: base
path: list.json
compare:
name: Compare
needs: [base, head]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm install json-diff
- name: Comment diff on PR
uses: actions/github-script@v6
with:
script: |
const { diffString } = require("json-diff")
const reduce = o => o.items.reduce((acc, v) => ({ [`**${v.metadata.namespace}/${v.metadata.name}** ${v.kind} (${v.apiVersion})`]: v, ...acc, }), {})
const baseList = require("./base/list.json")
const headList = require("./head/list.json")
const base = reduce(baseList)
const head = reduce(headList)
const sort = o => Object.fromEntries(Object.entries(o).sort())
const results = []
for (const name of new Set([...Object.keys(base), ...Object.keys(head)])) {
const result = diffString(sort(base[name]), sort(head[name]), {
outputKeys: ["apiVersion", "kind", "name", "namespace"]
})
if (result) {
results.push({
name,
result
})
}
}
if (!results.length) {
core.warning("no results")
return
}
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: results.map(v => {
const added = v.result.split("\n").filter(line => line.startsWith("+")).length
const deleted = v.result.split("\n").filter(line => line.startsWith("-")).length
return `${v.name} \${\\color{green}+${added}}\$ \${\\color{red}-${deleted}}\$
\`\`\`diff
${v.result}
\`\`\``
}).join("\n")
})