[READ ONLY MIRROR] Spark Social AppView Server
github.com/sprksocial/server
atproto
deno
hono
lexicon
1name: Build Image
2
3on:
4 push:
5 branches:
6 - main
7
8jobs:
9 build:
10 runs-on: blacksmith-4vcpu-ubuntu-2404
11 permissions:
12 contents: read
13 packages: write
14
15 steps:
16 - name: Checkout repository
17 uses: actions/checkout@v4
18 with:
19 fetch-depth: 0
20 - name: Extract Version from Tag
21 id: extract_version
22 run: |
23 # GITHUB_REF_NAME is like 'refs/tags/appview/v1.0.0'
24 # Or directly github.ref_name which is 'appview/v1.0.0'
25 TAG_NAME="${{ github.ref_name }}"
26 # Remove the known service prefix 'appview/'
27 VERSION=$(echo "$TAG_NAME" | sed 's#^appview/##')
28 echo "Extracted Version: $VERSION"
29 if [ -z "$VERSION" ]; then
30 echo "::error::Could not extract version from tag '$TAG_NAME'."
31 exit 1
32 fi
33 echo "version=${VERSION}" >> $GITHUB_OUTPUT
34 echo "ghcr_image_name=ghcr.io/${{ github.repository_owner }}/appview" >> $GITHUB_OUTPUT
35
36 - name: Log in to GitHub Container Registry
37 uses: docker/login-action@v3
38 with:
39 registry: ghcr.io
40 username: ${{ github.actor }}
41 password: ${{ secrets.GITHUB_TOKEN }}
42
43 - name: Set up QEMU
44 uses: docker/setup-qemu-action@v3
45
46 - name: Setup Blacksmith Builder
47 uses: useblacksmith/setup-docker-builder@v1
48
49 - name: Build and push Docker image for AppView
50 uses: useblacksmith/build-push-action@v2
51 with:
52 context: .
53 file: ./Dockerfile
54 push: true
55 platforms: linux/amd64,linux/arm64
56 build-args: |
57 COMMIT_SHA=${{ github.sha }}
58 tags: |
59 ${{ steps.extract_version.outputs.ghcr_image_name }}:${{ steps.extract_version.outputs.version }}
60 ${{ steps.extract_version.outputs.ghcr_image_name }}:latest
61 ${{ steps.extract_version.outputs.ghcr_image_name }}:${{ github.sha }}
62 labels: |
63 org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }}
64 org.opencontainers.image.created=${{ github.event.head_commit.timestamp }}
65 org.opencontainers.image.revision=${{ github.sha }}
66 org.opencontainers.image.version=${{ steps.extract_version.outputs.version }}
67 org.opencontainers.image.title=appview
68
69 - name: Image Push Summary
70 run: |
71 echo "Successfully pushed appview:"
72 echo "Image: ${{ steps.extract_version.outputs.ghcr_image_name }}"
73 echo "Tags: ${{ steps.extract_version.outputs.version }}, latest"