Skip to content

Commit 13ffe4c

Browse files
committed
add artifacts sign
Signed-off-by: Stavros Foteinopoulos <stafot@gmail.com>
1 parent 41576f7 commit 13ffe4c

File tree

1 file changed

+74
-0
lines changed

1 file changed

+74
-0
lines changed

.github/workflows/ci.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ env:
1212
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
1313
EXCLUDE_ENTERPRISE: true
1414
GO_VERSION: 1.24.6
15+
COSIGN_VERSION: 2.2.2
1516

1617
jobs:
1718
webapp-test:
@@ -104,11 +105,84 @@ jobs:
104105
GO_VERSION: ${{ env.GO_VERSION }}
105106
run: cd focalboard; make dist-all
106107

108+
- name: ci/setup-cosign
109+
uses: sigstore/cosign-installer@d58896d6a1865668819e1d91763c7751a165e159 # v3.9.2
110+
with:
111+
cosign-release: v${{ env.COSIGN_VERSION }}
112+
113+
- name: ci/sign-plugin-artifacts
114+
env:
115+
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
116+
COSIGN_PASSWORD: ${{ secrets.COSIGN_PASSWORD }}
117+
run: |
118+
cd focalboard
119+
echo "Signing plugin artifacts with cosign..."
120+
121+
# Sign normal distribution
122+
if [ -f dist/*.tar.gz ]; then
123+
for package in dist/*.tar.gz; do
124+
echo "Signing ${package}..."
125+
if [ -n "$COSIGN_PRIVATE_KEY" ]; then
126+
# Use private key signing if available
127+
cosign sign-blob --yes --key env://COSIGN_PRIVATE_KEY --output-signature "${package}.sig" "${package}"
128+
else
129+
echo "Warning: COSIGN_PRIVATE_KEY not available, skipping signing for ${package}"
130+
fi
131+
done
132+
fi
133+
134+
# Sign FIPS distribution
135+
if [ -f dist-fips/*.tar.gz ]; then
136+
for package in dist-fips/*.tar.gz; do
137+
echo "Signing ${package}..."
138+
if [ -n "$COSIGN_PRIVATE_KEY" ]; then
139+
# Use private key signing if available
140+
cosign sign-blob --yes --key env://COSIGN_PRIVATE_KEY --output-signature "${package}.sig" "${package}"
141+
else
142+
echo "Warning: COSIGN_PRIVATE_KEY not available, skipping signing for ${package}"
143+
fi
144+
done
145+
fi
146+
147+
echo "Artifact signing completed"
148+
149+
- name: ci/verify-signatures
150+
if: ${{ secrets.COSIGN_PRIVATE_KEY != '' && secrets.COSIGN_PUBLIC_KEY != '' }}
151+
env:
152+
COSIGN_PUBLIC_KEY: ${{ secrets.COSIGN_PUBLIC_KEY }}
153+
run: |
154+
cd focalboard
155+
echo "Verifying artifact signatures..."
156+
157+
# Verify normal distribution signatures
158+
if [ -f dist/*.tar.gz ]; then
159+
for package in dist/*.tar.gz; do
160+
if [ -f "${package}.sig" ] && [ -n "$COSIGN_PUBLIC_KEY" ]; then
161+
echo "Verifying ${package}..."
162+
cosign verify-blob --key env://COSIGN_PUBLIC_KEY --signature "${package}.sig" "${package}"
163+
fi
164+
done
165+
fi
166+
167+
# Verify FIPS distribution signatures
168+
if [ -f dist-fips/*.tar.gz ]; then
169+
for package in dist-fips/*.tar.gz; do
170+
if [ -f "${package}.sig" ] && [ -n "$COSIGN_PUBLIC_KEY" ]; then
171+
echo "Verifying ${package}..."
172+
cosign verify-blob --key env://COSIGN_PUBLIC_KEY --signature "${package}.sig" "${package}"
173+
fi
174+
done
175+
fi
176+
177+
echo "Signature verification completed"
178+
107179
- name: Upload all artifacts
108180
uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.5.0
109181
with:
110182
name: all-plugin-artifacts
111183
path: |
112184
focalboard/dist/*.tar.gz
185+
focalboard/dist/*.tar.gz.sig
113186
focalboard/dist-fips/*.tar.gz
187+
focalboard/dist-fips/*.tar.gz.sig
114188
retention-days: 7

0 commit comments

Comments
 (0)