Skip to content

Commit 5646fb2

Browse files
committed
ci: add ci and release workflows
1 parent bc4a6d2 commit 5646fb2

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

.github/workflows/ci.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: "CI"
2+
3+
concurrency:
4+
cancel-in-progress: true
5+
group: ${{github.workflow}}-${{github.ref}}
6+
7+
on:
8+
workflow_dispatch:
9+
pull_request:
10+
push:
11+
branches: ["main"]
12+
13+
jobs:
14+
ci:
15+
runs-on: "ubuntu-latest"
16+
steps:
17+
- name: "Check out the repo"
18+
uses: "actions/checkout@v5"
19+
20+
- name: Set up devkit
21+
uses: sablier-labs/devkit/actions/setup@main
22+
with:
23+
package-manager: bun
24+
25+
- name: "Install dependencies"
26+
run: "bun install --frozen-lockfile"
27+
28+
- name: "Run the code checks"
29+
run: "just full-check"
30+
31+
- name: "Build package"
32+
run: "just tsc-build"
33+
34+
- name: "Run tests"
35+
run: "just test"
36+
37+
- name: "Add summary"
38+
run: |
39+
echo "## Continuous Deployment results" >> $GITHUB_STEP_SUMMARY
40+
echo "✅ Passed" >> $GITHUB_STEP_SUMMARY

.github/workflows/release.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Creates GitHub releases automatically when version tags (e.g. v1.0.0) are pushed.
2+
# Also, syncs the major version branch (e.g. v1) with the release tag.
3+
name: Release
4+
5+
on:
6+
push:
7+
tags:
8+
- "v[0-9]+.[0-9]+.[0-9]+"
9+
10+
jobs:
11+
release:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Check out the repo
15+
uses: actions/checkout@v5
16+
17+
- name: Create Github release
18+
uses: docker://antonyurchenko/git-release:v5
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
22+
- name: Sync major version branch with release tag
23+
run: | #shell
24+
# Extract major version from tag (e.g., v1.2.3 -> v1)
25+
TAG_NAME="${{ github.ref_name }}"
26+
MAJOR_VERSION=$(echo "$TAG_NAME" | cut -d. -f1)
27+
MAJOR_BRANCH="$MAJOR_VERSION"
28+
29+
echo "Syncing branch '$MAJOR_BRANCH' with tag '$TAG_NAME'"
30+
31+
git config user.name "github-actions[bot]"
32+
git config user.email "github-actions[bot]@users.noreply.github.com"
33+
git fetch origin "$MAJOR_BRANCH" || true
34+
git checkout -B "$MAJOR_BRANCH"
35+
git push origin "$MAJOR_BRANCH" --force

0 commit comments

Comments
 (0)