Skip to content

WFO page session alert showing? #817

WFO page session alert showing?

WFO page session alert showing? #817

Workflow file for this run

name: ADR created
on:
issues:
types:
- closed
jobs:
main:
name: ADR created
runs-on: ubuntu-latest
# Only run this workflow if the closed issue has the "ADR: accepted" label
if: "${{ contains(github.event.issue.labels.*.name, 'ADR: accepted') }}"
steps:
- name: checkout main branch
uses: actions/checkout@v4
with:
ref: main
- name: get ADR number
id: next
run: |
LAST_ADR=$(ls docs/architecture/decisions/*.md | grep -Eo "decisions/[0-9]+-" | sort | tail -n1 | grep -Eo "[0-9]+")
LAST_ADR=$(echo "$LAST_ADR" | sed -E 's/^0+//')
NEXT_ADR=$(($LAST_ADR + 1))
NEXT_ADR=$(printf "%04i" "$NEXT_ADR")
echo "number=$NEXT_ADR" >> "$GITHUB_OUTPUT"
- name: write the ADR
uses: actions/github-script@v7
with:
script: |
const fs = require("fs/promises");
// Use the GitHub toJSON expression to get these as escaped strings.
// In Javascript, this will preserve line breaks, and using template
// strings further down will preserve all the kinds of quotes.
const title = ${{ toJSON(github.event.issue.title) }};
const body = ${{ toJSON(github.event.issue.body )}};
const slug = title
.toLowerCase()
.trim()
.replace(/[^\w\s-]/g, "") // get rid of non-ascii characters
.replace(/[\s_-]+/g, "-") // convert whitespace and underscore to dash
.replace(/^-+|-+$/g, ""); // git rid of leading/trailing dashes
const filename = `docs/architecture/decisions/${{ steps.next.outputs.number }}-${slug}.md`;
// Get the current date as an ISO8601 string, split at the timestamp,
// and only keep the date portion.
const [date] = new Date().toISOString().split("T");
const adr = `# ${ title }
Date: ${ date }
### Status
Accepted
${ body }
`;
await fs.writeFile(filename, adr, { encoding: 'utf-8' });
- name: branch, commit, and open PR
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
BRANCH="adr/auto/${{ steps.next.outputs.number }}"
git config --global user.email "[email protected]"
git config --global user.name "weather.gov ADR automation"
git checkout -b $BRANCH
git add docs/architecture/decisions/*.md
git commit -m "add ADR ${{ steps.next.outputs.number }}: ${{ github.event.issue.title }}"
git push -f origin $BRANCH
gh pr create \
--title "Add ADR ${{ steps.next.outputs.number }} to the repo" \
--label "ADR" \
--body "This pull request was opened automatically because #${{ github.event.issue.number }} was closed after being marked as an approved ADR. It contains a markdown file capturing the ADR body at the time the issue was closed. Please verify that the markdown is correct before merging!" || true
gh pr merge $BRANCH --auto --squash