Skip to content

Commit 16664ed

Browse files
authored
Initial setup of the repository (#1)
1 parent 1863540 commit 16664ed

29 files changed

+842
-1
lines changed

.github/FUNDING.yml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
open_collective: ponyc

.github/linters/.markdown-lint.yml

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"MD013": false
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Add discuss during sync label
2+
3+
on:
4+
issues:
5+
types:
6+
- opened
7+
- reopened
8+
issue_comment:
9+
types:
10+
- created
11+
pull_request_target:
12+
types:
13+
- opened
14+
- edited
15+
- ready_for_review
16+
- reopened
17+
pull_request_review:
18+
types:
19+
- submitted
20+
21+
jobs:
22+
add-label:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Add "discuss during sync" label to active GH entity
26+
uses: andymckay/labeler@467347716a3bdbca7f277cb6cd5fa9c5205c5412
27+
with:
28+
repo-token: ${{ secrets.PONYLANG_MAIN_API_TOKEN }}
29+
add-labels: "discuss during sync"
+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Announce a release
2+
3+
on:
4+
push:
5+
tags: announce-\d+.\d+.\d+
6+
7+
concurrency: announce-a-release
8+
9+
jobs:
10+
announce:
11+
name: Announcements
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout main
15+
uses: actions/checkout@v2
16+
with:
17+
ref: "main"
18+
token: ${{ secrets.RELEASE_TOKEN }}
19+
- name: Release notes
20+
uses: ponylang/[email protected]
21+
with:
22+
entrypoint: publish-release-notes-to-github
23+
env:
24+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
25+
- name: Zulip
26+
uses: ponylang/[email protected]
27+
with:
28+
entrypoint: send-announcement-to-pony-zulip
29+
env:
30+
ZULIP_API_KEY: ${{ secrets.ZULIP_RELEASE_API_KEY }}
31+
ZULIP_EMAIL: ${{ secrets.ZULIP_RELEASE_EMAIL }}
32+
- name: Last Week in Pony
33+
uses: ponylang/[email protected]
34+
with:
35+
entrypoint: add-announcement-to-last-week-in-pony
36+
env:
37+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
38+
39+
post-announcement:
40+
name: Tasks to run after the release has been announced
41+
needs:
42+
- announce
43+
runs-on: ubuntu-latest
44+
steps:
45+
- name: Checkout main
46+
uses: actions/checkout@v2
47+
with:
48+
ref: "main"
49+
token: ${{ secrets.RELEASE_TOKEN }}
50+
- name: Rotate release notes
51+
uses: ponylang/[email protected]
52+
with:
53+
entrypoint: rotate-release-notes
54+
env:
55+
GIT_USER_NAME: "Ponylang Main Bot"
56+
GIT_USER_EMAIL: "[email protected]"
57+
- name: Delete announcement trigger tag
58+
uses: ponylang/[email protected]
59+
with:
60+
entrypoint: delete-announcement-tag
61+
env:
62+
GIT_USER_NAME: "Ponylang Main Bot"
63+
GIT_USER_EMAIL: "[email protected]"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Test against ponyc nightly
2+
3+
on:
4+
repository_dispatch:
5+
types: [shared-docker-linux-builders-updated]
6+
7+
jobs:
8+
vs-latest-ponyc:
9+
name: Verify main against the latest ponyc
10+
runs-on: ubuntu-latest
11+
container:
12+
image: ponylang/shared-docker-ci-x86-64-unknown-linux-builder:latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
- name: Test
16+
run: make test config=debug
17+
- name: Send alert on failure
18+
if: ${{ failure() }}
19+
uses: zulip/github-actions-zulip@35d7ad8e98444f894dcfe1d4e17332581d28ebeb
20+
with:
21+
api-key: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_API_KEY }}
22+
email: ${{ secrets.ZULIP_SCHEDULED_JOB_FAILURE_EMAIL }}
23+
organization-url: 'https://ponylang.zulipchat.com/'
24+
to: notifications
25+
type: stream
26+
topic: ${{ github.repository }} scheduled job failure
27+
content: ${{ github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }} failed.

.github/workflows/changelog-bot.yml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Changelog Bot
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
tags-ignore:
8+
- '**'
9+
paths-ignore:
10+
- CHANGELOG.md
11+
12+
jobs:
13+
changelog-bot:
14+
runs-on: ubuntu-latest
15+
name: Update CHANGELOG.md
16+
steps:
17+
- name: Update Changelog
18+
uses: docker://ponylang/changelog-bot-action:0.3.3
19+
with:
20+
git_user_name: "Ponylang Main Bot"
21+
git_user_email: "[email protected]"
22+
env:
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Manually generate documentation
2+
3+
on:
4+
workflow_dispatch
5+
6+
jobs:
7+
generate-documentation:
8+
name: Generate documentation for release
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- name: Generate documentation and upload
13+
uses: docker://ponylang/library-documentation-action:release
14+
with:
15+
site_url: "https://ponylang.github.io/postgres/"
16+
library_name: "postgres"
17+
docs_build_dir: "build/postgres-docs"
18+
git_user_name: "Ponylang Main Bot"
19+
git_user_email: "[email protected]"
20+
env:
21+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}

.github/workflows/pr.yml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: PR
2+
3+
on: pull_request
4+
5+
jobs:
6+
superlinter:
7+
name: Lint bash, docker, markdown, and yaml
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v2
11+
- name: Lint codebase
12+
uses: docker://github/super-linter:v3.8.3
13+
env:
14+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
15+
VALIDATE_ALL_CODEBASE: true
16+
VALIDATE_BASH: true
17+
VALIDATE_DOCKERFILE: true
18+
VALIDATE_MD: true
19+
VALIDATE_YAML: true
20+
21+
verify-changelog:
22+
name: Verify CHANGELOG is valid
23+
runs-on: ubuntu-latest
24+
container:
25+
image: ponylang/changelog-tool:release
26+
steps:
27+
- uses: actions/checkout@v2
28+
- name: Verify CHANGELOG
29+
run: changelog-tool verify
30+
31+
vs-ponyc-release-linux:
32+
name: Test against recent ponyc release on Linux
33+
runs-on: ubuntu-latest
34+
container:
35+
image: ponylang/shared-docker-ci-x86-64-unknown-linux-builder:release
36+
steps:
37+
- uses: actions/checkout@v2
38+
- name: Test
39+
run: make test config=debug
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Prepare for a release
2+
3+
on:
4+
push:
5+
tags: release-\d+.\d+.\d+
6+
7+
concurrency: prepare-for-a-release
8+
9+
jobs:
10+
# all tasks that need to be done before we add an X.Y.Z tag
11+
# should be done as a step in the pre-tagging job.
12+
# think of it like this... if when you later checkout the tag for a release,
13+
# should the change be there? if yes, do it here.
14+
pre-tagging:
15+
name: Tasks run before tagging the release
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Checkout main
19+
uses: actions/checkout@v2
20+
with:
21+
ref: "main"
22+
token: ${{ secrets.RELEASE_TOKEN }}
23+
- name: Update CHANGELOG.md
24+
uses: ponylang/[email protected]
25+
with:
26+
entrypoint: update-changelog-for-release
27+
env:
28+
GIT_USER_NAME: "Ponylang Main Bot"
29+
GIT_USER_EMAIL: "[email protected]"
30+
- name: Update VERSION
31+
uses: ponylang/[email protected]
32+
with:
33+
entrypoint: update-version-in-VERSION
34+
env:
35+
GIT_USER_NAME: "Ponylang Main Bot"
36+
GIT_USER_EMAIL: "[email protected]"
37+
- name: Update version in README
38+
uses: ponylang/[email protected]
39+
with:
40+
entrypoint: update-version-in-README
41+
env:
42+
GIT_USER_NAME: "Ponylang Main Bot"
43+
GIT_USER_EMAIL: "[email protected]"
44+
- name: Update corral.json
45+
uses: ponylang/[email protected]
46+
with:
47+
entrypoint: update-version-in-corral-json
48+
env:
49+
GIT_USER_NAME: "Ponylang Main Bot"
50+
GIT_USER_EMAIL: "[email protected]"
51+
52+
# tag for release
53+
# this will kick off the next stage of the release process
54+
# no additional steps should be added to this job
55+
tag-release:
56+
name: Tag the release
57+
needs:
58+
- pre-tagging
59+
runs-on: ubuntu-latest
60+
steps:
61+
- name: Checkout main
62+
uses: actions/checkout@v2
63+
with:
64+
ref: "main"
65+
token: ${{ secrets.RELEASE_TOKEN }}
66+
- name: Trigger artefact creation
67+
uses: ponylang/[email protected]
68+
with:
69+
entrypoint: trigger-artefact-creation
70+
env:
71+
GIT_USER_NAME: "Ponylang Main Bot"
72+
GIT_USER_EMAIL: "[email protected]"
73+
74+
# all cleanup tags that should happen after tagging for release should happen
75+
# in the post-tagging job. examples of things you might do:
76+
# add a new unreleased section to a changelog
77+
# set a version back to "snapshot"
78+
# in general, post-tagging is for "going back to normal" from tasks that were
79+
# done during the pre-tagging job
80+
post-tagging:
81+
name: Tasks run after tagging the release
82+
needs:
83+
- tag-release
84+
runs-on: ubuntu-latest
85+
steps:
86+
- name: Checkout main
87+
uses: actions/checkout@v2
88+
with:
89+
ref: "main"
90+
token: ${{ secrets.RELEASE_TOKEN }}
91+
- name: Add "unreleased" section to CHANGELOG.md
92+
uses: ponylang/[email protected]
93+
with:
94+
entrypoint: add-unreleased-section-to-changelog
95+
env:
96+
GIT_USER_NAME: "Ponylang Main Bot"
97+
GIT_USER_EMAIL: "[email protected]"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Release Notes Reminder
2+
3+
on:
4+
pull_request_target:
5+
types: [labeled]
6+
7+
jobs:
8+
release-note-reminder:
9+
runs-on: ubuntu-latest
10+
name: Prompt to add release notes
11+
steps:
12+
- name: Prompt to add release notes
13+
uses: docker://ponylang/release-notes-reminder-bot-action:0.1.0
14+
env:
15+
API_CREDENTIALS: ${{ secrets.PONYLANG_MAIN_API_TOKEN }}
16+

.github/workflows/release-notes.yml

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Release Notes
2+
3+
on:
4+
push:
5+
branches:
6+
- '**'
7+
tags-ignore:
8+
- '**'
9+
paths-ignore:
10+
- .release-notes/next-release.md
11+
- .release-notes/\d+.\d+.\d+.md
12+
13+
jobs:
14+
release-notes:
15+
runs-on: ubuntu-latest
16+
name: Update release notes
17+
steps:
18+
- name: Update
19+
uses: docker://ponylang/release-notes-bot-action:0.3.3
20+
with:
21+
git_user_name: "Ponylang Main Bot"
22+
git_user_email: "[email protected]"
23+
env:
24+
API_CREDENTIALS: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)