Skip to content

Commit 9c3312f

Browse files
Jennifer Brehmclaude
andcommitted
Move CI/CD from GitLab to GitHub Actions
- Add ci.yml for lint/test/build on push and PRs - Update release workflow with CI gate before release and publish - Publishing now runs via GitHub Actions (free for public repos) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8c0c495 commit 9c3312f

2 files changed

Lines changed: 39 additions & 11 deletions

File tree

.github/workflows/ci.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: CI
2+
on:
3+
push:
4+
branches: [main]
5+
pull_request:
6+
branches: [main]
7+
jobs:
8+
ci:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: dtolnay/rust-toolchain@stable
13+
with:
14+
components: clippy
15+
- run: cargo clippy -- -D warnings
16+
- run: cargo test
17+
- run: cargo build --release
Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,32 @@
1-
name: Create GitHub Release
2-
1+
name: Release and Publish
32
on:
43
push:
5-
tags:
6-
- 'v*'
7-
4+
tags: ['v*']
85
permissions:
96
contents: write
10-
117
jobs:
8+
ci:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- uses: dtolnay/rust-toolchain@stable
13+
- run: cargo test
14+
- run: cargo build --release
1215
release:
1316
runs-on: ubuntu-latest
17+
needs: ci
18+
permissions:
19+
contents: write
1420
steps:
15-
- name: Checkout code
16-
uses: actions/checkout@v4
17-
18-
- name: Create Release
19-
uses: softprops/action-gh-release@v2
21+
- uses: actions/checkout@v4
22+
- uses: softprops/action-gh-release@v2
2023
with:
2124
generate_release_notes: true
25+
publish:
26+
runs-on: ubuntu-latest
27+
needs: ci
28+
steps:
29+
- uses: actions/checkout@v4
30+
- uses: dtolnay/rust-toolchain@stable
31+
- name: Publish to crates.io
32+
run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}

0 commit comments

Comments
 (0)