Skip to content

Commit cead6d4

Browse files
authored
Merge pull request #344 from cipherstash/feat/protectgh-ci
ci: use protectgh action for encrypted secrets
2 parents 702c036 + 3a44974 commit cead6d4

File tree

6 files changed

+84
-30
lines changed

6 files changed

+84
-30
lines changed

.github/secrets.env.encrypted

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"k": "ct",
3+
"c": "mBbKV<xz1b;lL$qXaZ1eEazgy12v{5BvnND87}b_mbG58wOs>0G4)-8UdG=fVK^Mgf0{+={6c)WxWPnZ(Cp1Iq=%3}nK4a)CGBx1bjZ=qv8EHV9gp30vQ`13OJxFK&vBuwpyEt$JE{*iks{9CMl@IGpcvQ8gA7RNsgU>j6~vXw+Ir0WKXxrDu|PrlDk@Z@tYC<k#21dU5I!B7JhCdj#Oah$5;B@;`J!gjCaT!(>11HTq*7Ufq{V_GxAc=rh+gkkDsiM%LjPyK-fvut?5Fwf*i8>YcD<c1kk(FP_6PM@GEq&lP0STP$!tjzkO6$$`4{%3v{sgVk+M~*j#Iic)1CkbkbIYoay}^IRAz!t<tG2uEdpeU*9F(1a9p3RcFU*5pxM?C&6}LH0u<=<>-HELZe^)cc$8aXF;l#4*srYmmdO$ydq-KxbwECzD%{l$#IQh90%*!8$=`lK`!aea=QOICK(5JGRkL1<_eHdY9z1_J8<51L=N29rCD=uup}QKsFs2>$S)|D9?w4r;l>ovY*rGAxmlR14{QFjmRFQP!4d#Q6k6p=#uO(tNpb(^yl7XC+h4xCXFq(gy*@DmrEK>}gF7fQx{^)m{aV4gA&KH|wO)rikb|jF_K@5|f+NpJ*%)`>xuKl=uSaMF4p!PA;EzE4?hdtPnd+5Y4Dk|UC7@wAs%G|M~f`LP3K*__-N~wag5|>u|aHGqB{mnyWcVLsKU&RUA*PLl#znp61^`!uKxq8~0fpsZi%tn;yFzj>-vHH*Zndd0d(|vjSN7XFO6f$aN3~2jD)GOi}6EHaE^o(dM0T6=5c!rBY7_9zJzpt74(wmd&;*o}70+0^HUc9)3GP7-s0il063@(-@;mcA;%pp%{`q+J}@ZQ>Y7i|Que0zv2o~nuk#%2pe^E0UN;J&qv)igfU!(!JHBVN`&s8VknlfK+YI`d6Ex(qIR)))}{j{8ZssNpWrUUpL%CGhk)6bjn`YMP@j&!4b)o5EHb&x(EwT5Re@jO4IK&ZSSQ50Gn`=uvGmBQ_N|c=l+SXHc{Mwe^hT_DK)zCcCW;$(YGqnzo9>AZz%W3Dp9wW9mjKd*NrGw;>G4_yU_>0^X1Ol6KHcL#1|MY;|SC5Hwu<&vtJ>^t3onC{{VkhX",
4+
"ob": null,
5+
"bf": null,
6+
"hm": null,
7+
"i": {
8+
"t": "ci_secrets",
9+
"c": "value"
10+
},
11+
"v": 2
12+
}

.github/workflows/benchmark.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,33 @@ jobs:
2424
steps:
2525
- uses: actions/checkout@v4
2626
- uses: ./.github/actions/setup-test
27+
28+
- name: Decrypt secrets
29+
uses: cipherstash/protectgh@main
30+
with:
31+
secrets-file: .github/secrets.env.encrypted
32+
env:
33+
CS_CLIENT_ID: ${{ secrets.CS_VAULT_CLIENT_ID }}
34+
CS_CLIENT_KEY: ${{ secrets.CS_VAULT_CLIENT_KEY }}
35+
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_VAULT_CLIENT_ACCESS_KEY }}
36+
CS_WORKSPACE_CRN: ${{ secrets.CS_VAULT_WORKSPACE_CRN }}
37+
2738
- run: |
2839
mise run postgres:up --extra-args "--detach --wait"
40+
2941
- name: Run benchmark
3042
working-directory: tests/benchmark
3143
env:
32-
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_CLIENT_ACCESS_KEY }}
33-
CS_DEFAULT_KEYSET_ID: ${{ secrets.CS_DEFAULT_KEYSET_ID }}
34-
CS_CLIENT_ID: ${{ secrets.CS_CLIENT_ID }}
35-
CS_CLIENT_KEY: ${{ secrets.CS_CLIENT_KEY }}
36-
CS_WORKSPACE_CRN: ${{ secrets.CS_WORKSPACE_CRN }}
3744
RUST_BACKTRACE: "1"
3845
run: mise run benchmark:continuous
46+
3947
# Download previous benchmark result from cache (if exists)
4048
- name: Download previous benchmark data
4149
uses: actions/cache@v4
4250
with:
4351
path: ./cache
4452
key: ${{ runner.os }}-benchmark
53+
4554
# Run `github-action-benchmark` action
4655
- name: Store benchmark result
4756
uses: benchmark-action/github-action-benchmark@v1
@@ -62,4 +71,3 @@ jobs:
6271
with:
6372
channel: engineering
6473
webhook_url: ${{ secrets.SLACK_NOTIFICATION_WEBHOOK_URL }}
65-

.github/workflows/release-aws-marketplace.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ env:
3535

3636
jobs:
3737
build:
38-
name: 🏗️ Build binaries + Docker images
38+
name: Build binaries + Docker images
3939
permissions:
4040
contents: read
4141
packages: write
@@ -82,6 +82,16 @@ jobs:
8282

8383
- uses: actions/checkout@v4
8484

85+
- name: Decrypt secrets
86+
uses: cipherstash/protectgh@main
87+
with:
88+
secrets-file: .github/secrets.env.encrypted
89+
env:
90+
CS_CLIENT_ID: ${{ secrets.CS_VAULT_CLIENT_ID }}
91+
CS_CLIENT_KEY: ${{ secrets.CS_VAULT_CLIENT_KEY }}
92+
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_VAULT_CLIENT_ACCESS_KEY }}
93+
CS_WORKSPACE_CRN: ${{ secrets.CS_VAULT_WORKSPACE_CRN }}
94+
8595
- uses: jdx/mise-action@v2
8696
with:
8797
version: 2025.1.6 # [default: latest] mise version to install
@@ -111,6 +121,5 @@ jobs:
111121
--fail-with-body \
112122
--url "https://api.developer.multitudes.co/deployments" \
113123
--header "Content-Type: application/json" \
114-
--header "Authorization: ${{ secrets.MULTITUDES_ACCESS_TOKEN }}" \
124+
--header "Authorization: ${{ env.MULTITUDES_ACCESS_TOKEN }}" \
115125
--data '{"commitSha": "${{ github.sha }}", "environmentName":"marketplace"}'
116-

.github/workflows/release.yml

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ env:
1212

1313
jobs:
1414
build:
15-
name: 🏗️ Build binaries + Docker images
15+
name: Build binaries + Docker images
1616
strategy:
1717
fail-fast: false
1818
matrix:
@@ -22,6 +22,17 @@ jobs:
2222
runs-on: ${{matrix.build.os}}
2323
steps:
2424
- uses: actions/checkout@v4
25+
26+
- name: Decrypt secrets
27+
uses: cipherstash/protectgh@main
28+
with:
29+
secrets-file: .github/secrets.env.encrypted
30+
env:
31+
CS_CLIENT_ID: ${{ secrets.CS_VAULT_CLIENT_ID }}
32+
CS_CLIENT_KEY: ${{ secrets.CS_VAULT_CLIENT_KEY }}
33+
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_VAULT_CLIENT_ACCESS_KEY }}
34+
CS_WORKSPACE_CRN: ${{ secrets.CS_VAULT_WORKSPACE_CRN }}
35+
2536
- name: Setup Rust cache
2637
uses: Swatinem/rust-cache@v2
2738
if: github.event_name == 'pull_request' # only cache in pull requests
@@ -55,8 +66,8 @@ jobs:
5566
- name: Login to Docker Hub
5667
uses: docker/login-action@v3
5768
with:
58-
username: ${{ secrets.DOCKER_HUB_USERNAME }}
59-
password: ${{ secrets.DOCKER_HUB_PERSONAL_ACCESS_TOKEN }}
69+
username: ${{ env.DOCKER_HUB_USERNAME }}
70+
password: ${{ env.DOCKER_HUB_PASSWORD }}
6071

6172
- name: Set up Docker Buildx
6273
uses: docker/setup-buildx-action@v3
@@ -92,6 +103,18 @@ jobs:
92103
needs:
93104
- build
94105
steps:
106+
- uses: actions/checkout@v4
107+
108+
- name: Decrypt secrets
109+
uses: cipherstash/protectgh@main
110+
with:
111+
secrets-file: .github/secrets.env.encrypted
112+
env:
113+
CS_CLIENT_ID: ${{ secrets.CS_VAULT_CLIENT_ID }}
114+
CS_CLIENT_KEY: ${{ secrets.CS_VAULT_CLIENT_KEY }}
115+
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_VAULT_CLIENT_ACCESS_KEY }}
116+
CS_WORKSPACE_CRN: ${{ secrets.CS_VAULT_WORKSPACE_CRN }}
117+
95118
- name: Download digests
96119
uses: actions/download-artifact@v4
97120
with:
@@ -102,8 +125,8 @@ jobs:
102125
- name: Login to Docker Hub
103126
uses: docker/login-action@v3
104127
with:
105-
username: ${{ secrets.DOCKER_HUB_USERNAME }}
106-
password: ${{ secrets.DOCKER_HUB_PERSONAL_ACCESS_TOKEN }}
128+
username: ${{ env.DOCKER_HUB_USERNAME }}
129+
password: ${{ env.DOCKER_HUB_PASSWORD }}
107130

108131
- name: Set up Docker Buildx
109132
uses: docker/setup-buildx-action@v3
@@ -135,5 +158,5 @@ jobs:
135158
--fail-with-body \
136159
--url "https://api.developer.multitudes.co/deployments" \
137160
--header "Content-Type: application/json" \
138-
--header "Authorization: ${{ secrets.MULTITUDES_ACCESS_TOKEN }}" \
161+
--header "Authorization: ${{ env.MULTITUDES_ACCESS_TOKEN }}" \
139162
--data '{"commitSha": "${{ github.sha }}", "environmentName":"dockerhub"}'

.github/workflows/test.yml

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,22 @@ jobs:
2424
steps:
2525
- uses: actions/checkout@v4
2626
- uses: ./.github/actions/setup-test
27+
28+
- name: Decrypt secrets
29+
uses: cipherstash/protectgh@main
30+
with:
31+
secrets-file: .github/secrets.env.encrypted
32+
env:
33+
CS_CLIENT_ID: ${{ secrets.CS_VAULT_CLIENT_ID }}
34+
CS_CLIENT_KEY: ${{ secrets.CS_VAULT_CLIENT_KEY }}
35+
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_VAULT_CLIENT_ACCESS_KEY }}
36+
CS_WORKSPACE_CRN: ${{ secrets.CS_VAULT_WORKSPACE_CRN }}
37+
2738
- run: |
2839
mise run postgres:up --extra-args "--detach --wait"
29-
- env:
30-
# REMEMBER TO ADD ENVIRONMENT VARIABLES TO tests/docker-compose.yml
31-
# The tests/docker-compose.yml config passes the ENV vars into the container
32-
CS_CLIENT_ACCESS_KEY: ${{ secrets.CS_CLIENT_ACCESS_KEY }}
33-
CS_DEFAULT_KEYSET_ID: ${{ secrets.CS_DEFAULT_KEYSET_ID }}
34-
CS_TENANT_KEYSET_ID_1: ${{ secrets.CS_TENANT_KEYSET_ID_1 }}
35-
CS_TENANT_KEYSET_ID_2: ${{ secrets.CS_TENANT_KEYSET_ID_2 }}
36-
CS_TENANT_KEYSET_ID_3: ${{ secrets.CS_TENANT_KEYSET_ID_3 }}
37-
CS_TENANT_KEYSET_NAME_1: ${{ secrets.CS_TENANT_KEYSET_NAME_1 }}
38-
CS_TENANT_KEYSET_NAME_2: ${{ secrets.CS_TENANT_KEYSET_NAME_2 }}
39-
CS_TENANT_KEYSET_NAME_3: ${{ secrets.CS_TENANT_KEYSET_NAME_3 }}
40-
CS_CLIENT_ID: ${{ secrets.CS_CLIENT_ID }}
41-
CS_CLIENT_KEY: ${{ secrets.CS_CLIENT_KEY }}
42-
CS_WORKSPACE_CRN: ${{ secrets.CS_WORKSPACE_CRN }}
40+
41+
- name: Run tests
42+
env:
4343
RUST_BACKTRACE: "1"
4444
run: |
4545
mise run --output prefix test
@@ -48,4 +48,3 @@ jobs:
4848
with:
4949
channel: engineering
5050
webhook_url: ${{ secrets.SLACK_NOTIFICATION_WEBHOOK_URL }}
51-

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ rust-toolchain.toml
1818
# credentials for local dev
1919
.env.proxy.docker
2020

21+
# decrypted CI secrets (encrypted file is .github/secrets.env.encrypted)
22+
.github/secrets.env
23+
2124
## benchmark result data
2225
tests/benchmark/results/*.csv
2326
tests/benchmark/benchmark-*.png

0 commit comments

Comments
 (0)