Skip to content

Commit 11de55d

Browse files
committed
ci: add release-prechecks workflow
1 parent b99440d commit 11de55d

File tree

4 files changed

+81
-77
lines changed

4 files changed

+81
-77
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: CI Checks
1+
name: Checks
22

33
on:
44
workflow_call:

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88

99
jobs:
1010
checks:
11-
name: Run CI Checks
12-
uses: ./.github/workflows/ci-checks.yml
11+
name: Run Checks
12+
uses: ./.github/workflows/checks.yml
1313

1414
build:
1515
name: Build Cross-Platform
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: Release Pre-checks
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
prerequisites:
8+
name: Prerequisites
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v5
13+
14+
- name: Set up Go
15+
uses: actions/setup-go@v5
16+
with:
17+
go-version-file: go.mod
18+
19+
- name: Validate prerequisites
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
22+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
23+
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
24+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
25+
GPG_FINGERPRINT: ${{ secrets.GPG_FINGERPRINT }}
26+
run: ./scripts/validate-release-prerequisites.sh
27+
28+
goreleaser-test:
29+
name: GoReleaser Test
30+
runs-on: ubuntu-latest
31+
needs: [prerequisites]
32+
steps:
33+
- name: Checkout code
34+
uses: actions/checkout@v5
35+
with:
36+
fetch-depth: 0
37+
38+
- name: Set up Go
39+
uses: actions/setup-go@v5
40+
with:
41+
go-version-file: go.mod
42+
43+
- name: Cache Go modules
44+
uses: actions/cache@v4
45+
with:
46+
path: |
47+
~/.cache/go-build
48+
~/go/pkg/mod
49+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
50+
restore-keys: |
51+
${{ runner.os }}-go-
52+
53+
- name: Install dependencies
54+
run: make deps
55+
56+
- name: Install GoReleaser
57+
uses: goreleaser/goreleaser-action@v6
58+
with:
59+
distribution: goreleaser
60+
version: "~> v2"
61+
install-only: true
62+
63+
- name: Run comprehensive GoReleaser test
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
66+
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
67+
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
68+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
69+
GPG_FINGERPRINT: ${{ secrets.GPG_FINGERPRINT }}
70+
run: |
71+
make goreleaser-check
72+
make goreleaser-test

.github/workflows/release.yml

Lines changed: 6 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -7,85 +7,17 @@ on:
77

88
jobs:
99
checks:
10-
name: Run CI Checks
11-
uses: ./.github/workflows/ci-checks.yml
10+
name: Run Checks
11+
uses: ./.github/workflows/checks.yml
1212

13-
# Validate release prerequisites
14-
validate-release:
15-
name: Validate Release Prerequisites
16-
runs-on: ubuntu-latest
17-
needs: [checks]
18-
steps:
19-
- name: Checkout code
20-
uses: actions/checkout@v5
21-
22-
- name: Set up Go
23-
uses: actions/setup-go@v5
24-
with:
25-
go-version-file: go.mod
26-
27-
- name: Validate prerequisites
28-
env:
29-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
30-
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
31-
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
32-
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
33-
GPG_FINGERPRINT: ${{ secrets.GPG_FINGERPRINT }}
34-
run: ./scripts/validate-release-prerequisites.sh
35-
36-
# GoReleaser configuration and build test
37-
goreleaser-test:
38-
name: GoReleaser Test
39-
runs-on: ubuntu-latest
40-
needs: [checks, validate-release]
41-
steps:
42-
- name: Checkout code
43-
uses: actions/checkout@v5
44-
with:
45-
fetch-depth: 0
46-
47-
- name: Set up Go
48-
uses: actions/setup-go@v5
49-
with:
50-
go-version-file: go.mod
51-
52-
- name: Cache Go modules
53-
uses: actions/cache@v4
54-
with:
55-
path: |
56-
~/.cache/go-build
57-
~/go/pkg/mod
58-
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
59-
restore-keys: |
60-
${{ runner.os }}-go-
61-
62-
- name: Install dependencies
63-
run: make deps
64-
65-
- name: Install GoReleaser
66-
uses: goreleaser/goreleaser-action@v6
67-
with:
68-
distribution: goreleaser
69-
version: "~> v2"
70-
install-only: true
71-
72-
- name: Run comprehensive GoReleaser test
73-
env:
74-
# Provide dummy values for test environment
75-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
76-
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
77-
AUR_SSH_PRIVATE_KEY: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
78-
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
79-
GPG_FINGERPRINT: ${{ secrets.GPG_FINGERPRINT }}
80-
run: |
81-
make goreleaser-check
82-
make goreleaser-test
13+
release-prechecks:
14+
name: Release Pre-checks
15+
uses: ./.github/workflows/release-prechecks.yml
8316

84-
# Release with GoReleaser
8517
release:
8618
name: Release
8719
runs-on: ubuntu-latest
88-
needs: [checks, validate-release, goreleaser-test]
20+
needs: [checks, release-prechecks]
8921
permissions:
9022
contents: write
9123
packages: write

0 commit comments

Comments
 (0)