Skip to content

Commit 0117ca7

Browse files
committed
feat: add build pipeline
1 parent 903c618 commit 0117ca7

File tree

4 files changed

+79
-16
lines changed

4 files changed

+79
-16
lines changed

.github/workflows/ci.yml

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
# branches:
6+
# - main
7+
8+
env:
9+
TEST_TAG: registry.work.soren.codes/portfolio:test
10+
LATEST_TAG: registry.work.soren.codes/portfolio:latest
11+
12+
jobs:
13+
build:
14+
environment: Production
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Login to registry
18+
uses: docker/login-action@v3
19+
with:
20+
registry: registry.work.soren.codes
21+
username: ${{ secrets.REGISTRY_USER }}
22+
password: ${{ secrets.REGISTRY_PASSWORD }}
23+
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Set up QEMU
28+
uses: docker/setup-qemu-action@v3
29+
30+
- name: Set up Docker Buildx
31+
uses: docker/setup-buildx-action@v3
32+
33+
- name: Build and load
34+
uses: docker/build-push-action@v6
35+
with:
36+
load: true
37+
tags: ${{ env.TEST_TAG }}
38+
build-args: |
39+
REPOSITORY=${ GITHUB_REPOSITORY }
40+
PREVIEW_SITE=${{ secrets.PREVIEW_SITE }}
41+
KEYSTATIC_GITHUB_CLIENT_ID=${{ secrets.KEYSTATIC_GITHUB_CLIENT_ID }}
42+
KEYSTATIC_GITHUB_CLIENT_SECRET=${{ secrets.KEYSTATIC_GITHUB_CLIENT_SECRET }}
43+
KEYSTATIC_SECRET=${{ secrets.KEYSTATIC_SECRET }}
44+
PUBLIC_KEYSTATIC_GITHUB_APP_SLUG=${{ secrets.PUBLIC_KEYSTATIC_GITHUB_APP_SLUG }}
45+
RESEND_API_KEY=${{ secrets.RESEND_API_KEY }}
46+
EMAIL_USER=${{ secrets.EMAIL_USER }}
47+
EMAIL_TARGET=${{ secrets.EMAIL_TARGET }}
48+
BRAND_NAME=${{ vars.BRAND_NAME }}
49+
BRAND_DESCRIPTION=${{ vars.BRAND_DESCRIPTION }}
50+
BRAND_LOGO=${{ vars.BRAND_LOGO }}
51+
BRAND_TWITTER=${{ vars.BRAND_TWITTER }}
52+
53+
- name: Test
54+
run: |
55+
docker run --rm ${{ env.TEST_TAG }}
56+
57+
- name: Build and push
58+
uses: docker/build-push-action@v6
59+
with:
60+
push: true
61+
tags: ${{ env.LATEST_TAG }}
62+
build-args: |
63+
REPOSITORY=${ GITHUB_REPOSITORY }
64+
PREVIEW_SITE=${{ secrets.PREVIEW_SITE }}
65+
KEYSTATIC_GITHUB_CLIENT_ID=${{ secrets.KEYSTATIC_GITHUB_CLIENT_ID }}
66+
KEYSTATIC_GITHUB_CLIENT_SECRET=${{ secrets.KEYSTATIC_GITHUB_CLIENT_SECRET }}
67+
KEYSTATIC_SECRET=${{ secrets.KEYSTATIC_SECRET }}
68+
PUBLIC_KEYSTATIC_GITHUB_APP_SLUG=${{ secrets.PUBLIC_KEYSTATIC_GITHUB_APP_SLUG }}
69+
RESEND_API_KEY=${{ secrets.RESEND_API_KEY }}
70+
EMAIL_USER=${{ secrets.EMAIL_USER }}
71+
EMAIL_TARGET=${{ secrets.EMAIL_TARGET }}
72+
BRAND_NAME=${{ vars.BRAND_NAME }}
73+
BRAND_DESCRIPTION=${{ vars.BRAND_DESCRIPTION }}
74+
BRAND_LOGO=${{ vars.BRAND_LOGO }}
75+
BRAND_TWITTER=${{ vars.BRAND_TWITTER }}

astro.config.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ export default defineConfig({
3232
context: 'client',
3333
access: 'public',
3434
}),
35-
REPO_OWNER: envField.string({
36-
context: 'client',
37-
access: 'public',
38-
}),
39-
REPO_NAME: envField.string({
35+
REPOSITORY: envField.string({
4036
context: 'client',
4137
access: 'public',
4238
}),

dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ ENV KEYSTATIC_SKIP=$KEYSTATIC_SKIP
3030
ENV KEYSTATIC_GITHUB_CLIENT_ID=$KEYSTATIC_GITHUB_CLIENT_ID
3131
ENV KEYSTATIC_GITHUB_CLIENT_SECRET=$KEYSTATIC_GITHUB_CLIENT_SECRET
3232
ENV KEYSTATIC_SECRET=$KEYSTATIC_SECRET
33-
ENV PUBLIC_KEYSTATIC_GITHUB_APP_SLUG=$PREVPUBLIC_KEYSTATIC_GITHUB_APP_SLUGEW_SITE
33+
ENV PUBLIC_KEYSTATIC_GITHUB_APP_SLUG=$PUBLIC_KEYSTATIC_GITHUB_APP_SLUG
3434
ENV BRAND_NAME=$BRAND_NAME
3535
ENV BRAND_DESCRIPTION=$BRAND_DESCRIPTION
3636
ENV BRAND_LOGO=$BRAND_LOGO

keystatic.config.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
import { config } from '@keystatic/core';
2-
import {
3-
BRAND_LOGO,
4-
BRAND_NAME,
5-
REPO_NAME,
6-
REPO_OWNER,
7-
} from 'astro:env/client';
2+
import { BRAND_LOGO, BRAND_NAME, REPOSITORY } from 'astro:env/client';
83

94
import { pageCollection } from '@/collections/page.collection';
105
import { logomark } from '@/components/content/logomark.content';
@@ -28,10 +23,7 @@ export default config({
2823
}
2924
: {
3025
kind: 'github',
31-
repo: {
32-
owner: REPO_OWNER,
33-
name: REPO_NAME,
34-
},
26+
repo: REPOSITORY as `${string}/${string}`,
3527
branchPrefix: 'preview',
3628
},
3729
collections: {

0 commit comments

Comments
 (0)