Skip to content

Commit 08dd77a

Browse files
ci: consolidate workflows to match coder/registry conventions
Restructure CI to align with coder/coder and coder/registry patterns: - Single ci.yaml workflow with format, lint-awesome, lint-typos, and link-check jobs, replacing three separate workflow files. - Add concurrency group so PR pushes cancel in-flight runs. - Drop markdownlint in favor of Prettier (via Bun) for formatting, the way coder/registry handles it. awesome-lint already covers the markdown rules that mattered for an awesome list. - Add crate-ci/typos for spell-checking, with .github/typos.toml declaring Coder community usernames and domain terms. - Add a separate zizmor workflow to lint GitHub Actions for security issues, matching coder/registry. - Pin all GitHub Actions to commit SHAs. Repository hygiene: - Add .github/PULL_REQUEST_TEMPLATE.md for contribution structure. - Rewrite issue templates as 1-broken-link.yaml and 2-suggest-resource.yaml to match coder/coder naming, with an ISSUE_TEMPLATE/config.yml directing general questions to docs, registry, Discord, and discussions. - Add .github/dependabot.yaml for weekly Actions and npm updates. - Add package.json, bun.lock, and .prettierignore so contributors and CI use the same Bun + Prettier toolchain as coder/registry. - Add .gitignore for node_modules. This change was prepared by Coder Agents.
1 parent fb3f932 commit 08dd77a

19 files changed

Lines changed: 1018 additions & 186 deletions
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: "🔗 Broken link"
2+
description: "Report a broken or out-of-date link in the README."
3+
title: "broken link: "
4+
labels: ["broken-links"]
5+
body:
6+
- type: checkboxes
7+
id: existing_issues
8+
attributes:
9+
label: "Is there an existing issue for this?"
10+
description: "Please search to see if an issue already exists for this broken link."
11+
options:
12+
- label: "I have searched the existing issues"
13+
required: true
14+
15+
- type: input
16+
id: section
17+
attributes:
18+
label: "Section"
19+
description: "Which section of `README.md` contains the broken link?"
20+
placeholder: "Templates"
21+
validations:
22+
required: true
23+
24+
- type: input
25+
id: url
26+
attributes:
27+
label: "URL"
28+
description: "The exact URL that no longer works."
29+
validations:
30+
required: true
31+
32+
- type: textarea
33+
id: details
34+
attributes:
35+
label: "Details"
36+
description: "Any extra context: 404, redirect to an unrelated page, archived repo, etc."
37+
validations:
38+
required: false
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: "✨ Suggest a resource"
2+
description: "Suggest a resource to add to the list."
3+
title: "suggestion: "
4+
labels: ["suggestion"]
5+
body:
6+
- type: checkboxes
7+
id: existing_issues
8+
attributes:
9+
label: "Is there an existing issue for this?"
10+
description: "Please search to see if the resource has already been suggested or listed."
11+
options:
12+
- label: "I have searched the existing issues and the README"
13+
required: true
14+
15+
- type: input
16+
id: name
17+
attributes:
18+
label: "Name"
19+
description: "Name of the resource."
20+
validations:
21+
required: true
22+
23+
- type: input
24+
id: url
25+
attributes:
26+
label: "URL"
27+
validations:
28+
required: true
29+
30+
- type: dropdown
31+
id: section
32+
attributes:
33+
label: "Suggested section"
34+
options:
35+
- Official Resources
36+
- Tutorials and Blog Posts
37+
- IDEs
38+
- Automation
39+
- Templates
40+
- Talks and Videos
41+
- Other (explain below)
42+
validations:
43+
required: true
44+
45+
- type: textarea
46+
id: description
47+
attributes:
48+
label: "One-line description"
49+
description: "Format as it would appear in the README, e.g. `[Name](url) - One-line description.`"
50+
validations:
51+
required: true
52+
53+
- type: checkboxes
54+
id: checks
55+
attributes:
56+
label: "Checks"
57+
options:
58+
- label: "I have read the [contribution guidelines](../blob/main/CONTRIBUTING.md)."
59+
required: true
60+
- label: "The resource is actively maintained."
61+
required: false

.github/ISSUE_TEMPLATE/broken-link.yml

Lines changed: 0 additions & 27 deletions
This file was deleted.

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
contact_links:
2+
- name: Coder Documentation
3+
url: https://coder.com/docs
4+
about: Official Coder documentation.
5+
- name: Coder Registry
6+
url: https://registry.coder.com
7+
about: Official and community templates and modules.
8+
- name: Coder Discord
9+
url: https://cdr.co/discord-Y6fMxGdNRg
10+
about: Get in touch with the Coder developers and community for support.
11+
- name: Questions or discussion
12+
url: https://github.com/coder/coder/discussions/new/choose
13+
about: For general questions or discussion, use the coder/coder discussions board.

.github/ISSUE_TEMPLATE/suggest-resource.yml

Lines changed: 0 additions & 48 deletions
This file was deleted.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
## Description
2+
3+
<!-- Briefly describe what this PR does and why. -->
4+
5+
## Type of change
6+
7+
- [ ] New resource added to the list
8+
- [ ] Resource removed (no longer maintained, broken, etc.)
9+
- [ ] Resource updated (URL change, description change, etc.)
10+
- [ ] Documentation or content refresh
11+
- [ ] CI, tooling, or repository maintenance
12+
- [ ] Other
13+
14+
## Resource information
15+
16+
<!-- Delete this section if your PR does not add or update a list entry. -->
17+
18+
**Section:**
19+
**Entry:** `[Name](url) - One-line description.`
20+
21+
## Checklist
22+
23+
- [ ] I have read the [contribution guidelines](../blob/main/CONTRIBUTING.md).
24+
- [ ] My entry follows the `[Name](url) - One-line description.` format.
25+
- [ ] The resource is actively maintained or otherwise worth listing.
26+
- [ ] `bun fmt:ci` passes locally (or I'm relying on CI to confirm).
27+
28+
## Related issues
29+
30+
<!-- Link related issues or write "None". -->

.github/dependabot.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: "weekly"
7+
groups:
8+
github-actions:
9+
patterns:
10+
- "*"
11+
12+
- package-ecosystem: "npm"
13+
directory: "/"
14+
schedule:
15+
interval: "weekly"
16+
groups:
17+
npm:
18+
patterns:
19+
- "*"

.github/typos.toml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[default.extend-words]
2+
# Coder community handles / usernames that look like typos.
3+
denbeigh = "denbeigh"
4+
matifali = "matifali"
5+
sharkymark = "sharkymark"
6+
ntimo = "ntimo"
7+
bpmct = "bpmct"
8+
tmsmr = "tmsmr"
9+
sulo = "sulo"
10+
elliotgraebert = "elliotgraebert"
11+
12+
# Domain-specific terms.
13+
Kubevirt = "KubeVirt"
14+
NixOS = "NixOS"
15+
HashiCorp = "HashiCorp"
16+
17+
[files]
18+
extend-exclude = [
19+
"LICENSE",
20+
"bun.lock",
21+
"node_modules",
22+
]

.github/workflows/awesome-lint.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.

.github/workflows/ci.yaml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
schedule:
8+
# Mondays at 14:00 UTC, so broken links surface even between contributions.
9+
- cron: "0 14 * * 1"
10+
workflow_dispatch:
11+
12+
# Cancel in-progress runs for pull requests when developers push new changes.
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
16+
17+
permissions:
18+
contents: read
19+
20+
jobs:
21+
format:
22+
name: Check formatting
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Check out code
26+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
27+
with:
28+
persist-credentials: false
29+
30+
- name: Install Bun
31+
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
32+
with:
33+
bun-version: latest
34+
35+
- name: Install dependencies
36+
run: bun install --frozen-lockfile
37+
38+
- name: Validate formatting
39+
run: bun fmt:ci
40+
41+
lint-awesome:
42+
name: Lint awesome list
43+
runs-on: ubuntu-latest
44+
steps:
45+
- name: Check out code
46+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
47+
with:
48+
persist-credentials: false
49+
50+
- name: Install Bun
51+
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
52+
with:
53+
bun-version: latest
54+
55+
- name: Run awesome-lint
56+
run: bun x awesome-lint
57+
58+
lint-typos:
59+
name: Check for typos
60+
runs-on: ubuntu-latest
61+
steps:
62+
- name: Check out code
63+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
64+
with:
65+
persist-credentials: false
66+
67+
- name: Run typos
68+
uses: crate-ci/typos@37bb98842b0d8c4ffebdb75301a13db0267cef89 # v1.47.2
69+
with:
70+
config: .github/typos.toml
71+
72+
link-check:
73+
name: Check links
74+
runs-on: ubuntu-latest
75+
permissions:
76+
contents: read
77+
issues: write
78+
steps:
79+
- name: Check out code
80+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
81+
with:
82+
persist-credentials: false
83+
84+
- name: Run lychee
85+
id: lychee
86+
uses: lycheeverse/lychee-action@8646ba30535128ac92d33dfc9133794bfdd9b411 # v2.8.0
87+
with:
88+
args: >-
89+
--verbose
90+
--no-progress
91+
--max-concurrency 4
92+
--retry-wait-time 5
93+
--accept 200,206,403,429
94+
--exclude-mail
95+
'./**/*.md'
96+
fail: ${{ github.event_name == 'push' || github.event_name == 'pull_request' }}
97+
env:
98+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
99+
100+
- name: Open or update an issue when the scheduled run fails
101+
if: failure() && github.event_name == 'schedule'
102+
uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd # v5.0.1
103+
with:
104+
title: Broken links detected by scheduled link check
105+
content-filepath: ./lychee/out.md
106+
labels: broken-links, automated

0 commit comments

Comments
 (0)