Highly ambitious ATProtocol AppView service and sdks
1name: Release API Container
2
3on:
4 push:
5 tags:
6 - 'v*'
7
8jobs:
9 release:
10 runs-on: ubuntu-latest
11 defaults:
12 run:
13 working-directory: api
14
15 steps:
16 - name: Checkout code
17 uses: actions/checkout@v4
18
19 - name: Install Nix
20 uses: DeterminateSystems/nix-installer-action@main
21 with:
22 logger: pretty
23
24 - name: Setup Nix cache
25 uses: DeterminateSystems/magic-nix-cache-action@main
26
27 - name: Check flake
28 run: nix flake check --refresh
29
30 - name: Build Rust binary
31 run: nix build .#slices
32
33 - name: Build Docker image
34 run: nix build .#slicesImg
35
36 - name: Load Docker image
37 run: docker load < result
38
39 - name: Login to GitHub Container Registry
40 uses: docker/login-action@v3
41 with:
42 registry: ghcr.io
43 username: ${{ github.actor }}
44 password: ${{ secrets.GITHUB_TOKEN }}
45
46 - name: Extract tag name
47 id: tag
48 run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
49
50 - name: Tag for GitHub Container Registry
51 run: |
52 docker tag slices:latest ghcr.io/${{ github.repository }}/api:latest
53 docker tag slices:latest ghcr.io/${{ github.repository }}/api:${{ steps.tag.outputs.tag }}
54
55 - name: Push to GitHub Container Registry
56 run: |
57 docker push ghcr.io/${{ github.repository }}/api:latest
58 docker push ghcr.io/${{ github.repository }}/api:${{ steps.tag.outputs.tag }}