1name: Publish Collab Server Image
2
3on:
4 push:
5 tags:
6 - collab-v*
7
8env:
9 DOCKER_BUILDKIT: 1
10 DIGITALOCEAN_ACCESS_TOKEN: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
11
12jobs:
13 publish:
14 name: Publish collab server image
15 runs-on:
16 - self-hosted
17 - deploy
18 steps:
19 - name: Add Rust to the PATH
20 run: echo "$HOME/.cargo/bin" >> $GITHUB_PATH
21
22 - name: Sign into DigitalOcean docker registry
23 run: doctl registry login
24
25 - name: Checkout repo
26 uses: actions/checkout@v3
27 with:
28 clean: false
29 submodules: 'recursive'
30
31 - name: Check that tag version matches package version
32 run: |
33 set -eu
34 package_version=$(cargo metadata --no-deps --format-version=1 | jq --raw-output '.packages[] | select(.name == "collab") | .version')
35 tag_version=$(echo $GITHUB_REF_NAME | sed -e 's/collab-v//')
36 if [[ $tag_version != $package_version ]]; then
37 echo "collab package version $package_version does not match git tag version $tag_version"
38 exit 1
39 fi
40 echo "Publishing image version: $package_version"
41 echo "COLLAB_VERSION=$package_version" >> $GITHUB_ENV
42
43 - name: Build docker image
44 run: docker build . --tag registry.digitalocean.com/zed/collab:v${COLLAB_VERSION}
45
46 - name: Publish docker image
47 run: docker push registry.digitalocean.com/zed/collab:v${COLLAB_VERSION}