Skip to content

Commit

Permalink
initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
q committed Jun 3, 2025
0 parents commit 9a42f2a
Show file tree
Hide file tree
Showing 12 changed files with 543 additions and 0 deletions.
101 changes: 101 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
version: 2
jobs:
build:
docker:
- image: martinthomson/i-d-template:latest
resource_class: small
working_directory: ~/draft

steps:
- run:
name: "Print Configuration"
command: |
xml2rfc --version
gem list -q kramdown-rfc
echo -n 'mmark '; mmark --version
- restore_cache:
name: "Restoring cache - Git"
keys:
- v2-cache-git-{{ .Branch }}-{{ .Revision }}
- v2-cache-git-{{ .Branch }}
- v2-cache-git-

- restore_cache:
name: "Restoring cache - References"
keys:
- v1-cache-references-{{ epoch }}
- v1-cache-references-

# Workaround for https://discuss.circleci.com/t/22437
- run:
name: Tag Checkout
command: |
if [ -n "$CIRCLE_TAG" ] && [ -d .git ]; then
remote=$(echo "$CIRCLE_REPOSITORY_URL" | \
sed -e 's,/^git.github.com:,https://github.com/,')
git fetch -f "$remote" "refs/tags/$CIRCLE_TAG:refs/tags/$CIRCLE_TAG" || \
(echo 'Removing .git cache for tag build'; rm -rf .git)
fi
- checkout

# Build txt and html versions of drafts
- run:
name: "Build Drafts"
command: make

# Update editor's copy on gh-pages
- run:
name: "Update GitHub Pages"
command: |
if [ "${CIRCLE_TAG#draft-}" == "$CIRCLE_TAG" ]; then
make gh-pages
fi
# For tagged builds, upload to the datatracker.
- deploy:
name: "Upload to Datatracker"
command: |
if [ "${CIRCLE_TAG#draft-}" != "$CIRCLE_TAG" ]; then
make upload
fi
# Archive GitHub Issues
- run:
name: "Archive GitHub Issues"
command: "make archive || make archive DISABLE_ARCHIVE_FETCH=true && make gh-archive"

# Create and store artifacts
- run:
name: "Create Artifacts"
command: "make artifacts CI_ARTIFACTS=/tmp/artifacts"

- store_artifacts:
path: /tmp/artifacts

- run:
name: "Prepare for Caching"
command: "git reflog expire --expire=now --all && git gc --prune=now"

- save_cache:
name: "Saving Cache - Git"
key: v2-cache-git-{{ .Branch }}-{{ .Revision }}
paths:
- ~/draft/.git

- save_cache:
name: "Saving Cache - Drafts"
key: v1-cache-references-{{ epoch }}
paths:
- ~/.cache/xml2rfc


workflows:
version: 2
build:
jobs:
- build:
filters:
tags:
only: /.*?/
8 changes: 8 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# See http://editorconfig.org

root = true

[*.{md,xml,org}]
charset = utf-8
insert_final_newline = true
trim_trailing_whitespace = true
3 changes: 3 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Automatically generated CODEOWNERS
# Regenerate with `make update-codeowners`
draft-misell-grow-rpki-peering-api-discovery.xml q@as207960.net q@magicalcodewit.ch
42 changes: 42 additions & 0 deletions .github/workflows/archive.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: "Archive Issues and Pull Requests"

on:
schedule:
- cron: '0 0 * * 0,2,4'
repository_dispatch:
types: [archive]
workflow_dispatch:
inputs:
archive_full:
description: 'Recreate the archive from scratch'
default: false
type: boolean

jobs:
build:
name: "Archive Issues and Pull Requests"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4

# Note: No caching for this build!

- name: "Update Archive"
uses: martinthomson/i-d-template@v1
env:
ARCHIVE_FULL: ${{ inputs.archive_full }}
with:
make: archive
token: ${{ github.token }}

- name: "Update GitHub Pages"
uses: martinthomson/i-d-template@v1
with:
make: gh-archive
token: ${{ github.token }}

- name: "Save Archive"
uses: actions/upload-artifact@v3
with:
path: archive.json
58 changes: 58 additions & 0 deletions .github/workflows/ghpages.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: "Update Editor's Copy"

on:
push:
paths-ignore:
- README.md
- CONTRIBUTING.md
- LICENSE.md
- .gitignore
pull_request:
paths-ignore:
- README.md
- CONTRIBUTING.md
- LICENSE.md
- .gitignore

jobs:
build:
name: "Update Editor's Copy"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Setup"
id: setup
run: date -u "+date=%FT%T" >>"$GITHUB_OUTPUT"

- name: "Caching"
uses: actions/cache@v4
with:
path: |
.refcache
.venv
.gems
node_modules
.targets.mk
key: i-d-${{ steps.setup.outputs.date }}
restore-keys: i-d-

- name: "Build Drafts"
uses: martinthomson/i-d-template@v1
with:
token: ${{ github.token }}

- name: "Update GitHub Pages"
uses: martinthomson/i-d-template@v1
if: ${{ github.event_name == 'push' }}
with:
make: gh-pages
token: ${{ github.token }}

- name: "Archive Built Drafts"
uses: actions/upload-artifact@v3
with:
path: |
draft-*.html
draft-*.txt
57 changes: 57 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: "Publish New Draft Version"

on:
push:
tags:
- "draft-*"
workflow_dispatch:
inputs:
email:
description: "Submitter email"
default: ""
type: string

jobs:
build:
name: "Publish New Draft Version"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4

# See https://github.com/actions/checkout/issues/290
- name: "Get Tag Annotations"
run: git fetch -f origin ${{ github.ref }}:${{ github.ref }}

- name: "Setup"
id: setup
run: date -u "+date=%FT%T" >>"$GITHUB_OUTPUT"

- name: "Caching"
uses: actions/cache@v4
with:
path: |
.refcache
.venv
.gems
node_modules
.targets.mk
key: i-d-${{ steps.setup.outputs.date }}
restore-keys: i-d-

- name: "Build Drafts"
uses: martinthomson/i-d-template@v1
with:
token: ${{ github.token }}

- name: "Upload to Datatracker"
uses: martinthomson/i-d-template@v1
with:
make: upload
env:
UPLOAD_EMAIL: ${{ inputs.email }}

- name: "Archive Submitted Drafts"
uses: actions/upload-artifact@v3
with:
path: "versioned/draft-*-[0-9][0-9].*"
36 changes: 36 additions & 0 deletions .github/workflows/update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: "Update Generated Files"
# This rule is not run automatically.
# It can be run manually to update all of the files that are part
# of the template, specifically:
# - README.md
# - CONTRIBUTING.md
# - .note.xml
# - .github/CODEOWNERS
# - Makefile
#
#
# This might be useful if you have:
# - added, removed, or renamed drafts (including after adoption)
# - added, removed, or changed draft editors
# - changed the title of drafts
#
# Note that this removes any customizations you have made to
# the affected files.
on: workflow_dispatch

jobs:
build:
name: "Update Files"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Update Generated Files"
uses: martinthomson/i-d-template@v1
with:
make: update-files
token: ${{ github.token }}

- name: "Push Update"
run: git push
22 changes: 22 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
*.html
*.pdf
*.redxml
*.swp
*.txt
*.upload
*~
.tags
/*-[0-9][0-9].xml
/.gems/
/.refcache
/.targets.mk
/.venv/
/.vscode/
/node_modules/
/versioned/
Gemfile.lock
archive.json
package-lock.json
report.xml
!requirements.txt
/.idea/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "lib"]
path = lib
url = https://github.com/martinthomson/i-d-template
13 changes: 13 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
LIBDIR := lib
PAGES_BRANCH := gh-pages

include $(LIBDIR)/main.mk

$(LIBDIR)/main.mk:
ifneq (,$(shell grep "path *= *$(LIBDIR)" .gitmodules 2>/dev/null))
git submodule sync
git submodule update $(CLONE_ARGS) --init
else
git clone -q --depth 10 $(CLONE_ARGS) \
-b main https://github.com/martinthomson/i-d-template $(LIBDIR)
endif
Loading

0 comments on commit 9a42f2a

Please sign in to comment.