Skip to content

Commit 7f25ea9

Browse files
authored
ci: setup standard github actions (#4)
## This PR - adds support for merge queues - adds placeholder testing action - adds placeholder release action - adds pr title validator ### Related Issues Fixes #3 --------- Signed-off-by: Michael Beemer <[email protected]>
1 parent 5016c40 commit 7f25ea9

File tree

4 files changed

+139
-0
lines changed

4 files changed

+139
-0
lines changed

.github/workflows/doc-exceptions.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: DCO
2+
on:
3+
merge_group:
4+
5+
permissions: # set top-level default permissions as security best practice
6+
contents: read # Check https://github.com/ossf/scorecard/blob/7ce8609469289d5f3b1bf5ee3122f42b4e3054fb/docs/checks.md#token-permissions
7+
8+
jobs:
9+
DCO:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- run: echo "skipping DCO check for the merge group"

.github/workflows/lint-pr.yaml

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: "Lint PR"
2+
3+
on:
4+
pull_request_target:
5+
types:
6+
- opened
7+
- edited
8+
- synchronize
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
main:
15+
permissions:
16+
pull-requests: read # for amannn/action-semantic-pull-request to analyze PRs
17+
statuses: write # for amannn/action-semantic-pull-request to mark status of analyzed PR
18+
name: Validate PR title
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: amannn/action-semantic-pull-request@v5
22+
id: lint_pr_title
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
- uses: marocchino/sticky-pull-request-comment@v2
26+
# When the previous steps fails, the workflow would stop. By adding this
27+
# condition you can continue the execution with the populated error message.
28+
if: always() && (steps.lint_pr_title.outputs.error_message != null)
29+
with:
30+
header: pr-title-lint-error
31+
message: |
32+
Hey there and thank you for opening this pull request! 👋🏼
33+
34+
We require pull request titles to follow the [Conventional Commits specification](https://www.conventionalcommits.org/en/v1.0.0/) and it looks like your proposed title needs to be adjusted.
35+
36+
Details:
37+
38+
```
39+
${{ steps.lint_pr_title.outputs.error_message }}
40+
```
41+
42+
# Delete a previous comment when the issue has been resolved
43+
- if: ${{ steps.lint_pr_title.outputs.error_message == null }}
44+
uses: marocchino/sticky-pull-request-comment@v2
45+
with:
46+
header: pr-title-lint-error
47+
delete: true

.github/workflows/pr-test.yaml

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: PR Test
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
merge_group:
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
test:
14+
name: test
15+
runs-on: ${{ matrix.os }}
16+
strategy:
17+
matrix:
18+
os: [ubuntu-latest, macos-latest, windows-latest]
19+
sdk: [3.1, stable, beta]
20+
steps:
21+
- uses: actions/checkout@v4
22+
- uses: dart-lang/setup-dart@v1
23+
with:
24+
sdk: ${{ matrix.sdk }}
25+
26+
# TODO: Uncomment once there's something to test!
27+
# - name: Install dependencies
28+
# run: dart pub get
29+
30+
# - name: Run tests
31+
# run: dart test

.github/workflows/release.yaml

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Run Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
release-please:
13+
runs-on: ubuntu-latest
14+
permissions:
15+
contents: write # for googleapis/release-please-action to create release commit
16+
pull-requests: write # for googleapis/release-please-action to create release PR
17+
# Release-please creates a PR that tracks all changes
18+
steps:
19+
- uses: google-github-actions/release-please-action@v3
20+
id: release
21+
with:
22+
command: manifest
23+
token: ${{secrets.RELEASE_PLEASE_ACTION_TOKEN}}
24+
default-branch: main
25+
signoff: "OpenFeature Bot <[email protected]>"
26+
- name: Dump Release Please Output
27+
env:
28+
RELEASE_PLEASE_OUTPUT: ${{ toJSON(steps.release.outputs) }}
29+
run: |
30+
echo "$RELEASE_PLEASE_OUTPUT"
31+
outputs:
32+
release_created: ${{ steps.release.outputs.release_created }}
33+
release_tag_name: ${{ steps.release.outputs.tag_name }}
34+
upload_url: ${{ steps.release.outputs.upload_url }}
35+
36+
go-release:
37+
needs: release-please
38+
if: ${{ fromJSON(needs.release-please.outputs.release_created || false) }}
39+
runs-on: ubuntu-latest
40+
permissions:
41+
contents: write
42+
steps:
43+
- name: Checkout
44+
uses: actions/checkout@v4
45+
with:
46+
fetch-depth: 0
47+
ref: ${{ needs.release-please.outputs.release_tag_name }}
48+
49+
# TODO Configure release process once there's something to release

0 commit comments

Comments
 (0)