Skip to content

Commit fe8db39

Browse files
fix Docker image release
1 parent 3f994ae commit fe8db39

File tree

2 files changed

+76
-62
lines changed

2 files changed

+76
-62
lines changed

.github/workflows/image_release.yaml

Lines changed: 0 additions & 62 deletions
This file was deleted.

.github/workflows/packages_release.yaml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ jobs:
1111
release-packages:
1212
name: Release Packages
1313
runs-on: ubuntu-latest
14+
outputs:
15+
dockerReleaseCreated: ${{ steps.check_docker_release.outputs.docker_image_release_created }}
1416
steps:
1517
- name: Checkout Repo
1618
uses: actions/checkout@v4
@@ -55,3 +57,77 @@ jobs:
5557
env:
5658
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5759
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
60+
61+
- name: Check if @powersync/service-image Released
62+
id: check_docker_release
63+
if: steps.changesets.outputs.published == 'true'
64+
run: |
65+
packages="${{ toJson(steps.changesets.outputs.publishedPackages) }}"
66+
echo "Packages: $packages" # Debugging output
67+
68+
# Use jq to check if the specific package is in the array
69+
# Ensure the JSON is valid by echoing it into jq
70+
echo "$packages" | jq -e '[.[] | select(.name == "@powersync/service-image")] | length > 0' > /dev/null
71+
if [ $? -eq 0 ]; then
72+
echo "docker_image_release_created=true" >> $GITHUB_OUTPUT
73+
else
74+
echo "docker_image_release_created=false" >> $GITHUB_OUTPUT
75+
fi
76+
77+
- name: Debug Outputs
78+
run: |
79+
echo "Published Packages: ${{ steps.changesets.outputs.publishedPackages }}"
80+
echo "Released Docker Image: ${{ steps.check_docker_release.outputs.docker_image_release_created }}"
81+
82+
release-docker-image:
83+
name: Build and Release powersync-service Docker Image
84+
runs-on: ubuntu-latest
85+
needs: release-packages
86+
# Only run this job if the previous release job created a release for @powersync/service-image
87+
if: needs.release-packages.outputs.dockerReleaseCreated == 'true'
88+
steps:
89+
- name: Checkout
90+
uses: actions/checkout@v4
91+
with:
92+
# check out full history
93+
# Temporarily needed for changesets
94+
fetch-depth: 0
95+
96+
- name: Set up QEMU
97+
uses: docker/setup-qemu-action@v3
98+
99+
- name: Set up Docker Buildx
100+
uses: docker/setup-buildx-action@v3
101+
102+
- name: Login to Docker Hub
103+
uses: docker/login-action@v3
104+
with:
105+
username: ${{ secrets.DOCKERHUB_USERNAME }}
106+
password: ${{ secrets.DOCKERHUB_TOKEN }}
107+
108+
# This uses the service's package.json version for the Docker Image tag
109+
- name: Get Service Version from package.json
110+
id: get_version
111+
run: echo "SERVICE_VERSION=$(node -p "require('./service/package.json').version")" >> $GITHUB_OUTPUT
112+
113+
- name: Build Image and Push
114+
uses: docker/build-push-action@v5
115+
with:
116+
platforms: linux/arm64,linux/amd64
117+
cache-from: type=registry,ref=${{vars.DOCKER_REGISTRY}}:latest
118+
context: .
119+
tags: ${{vars.DOCKER_REGISTRY}}:latest,${{vars.DOCKER_REGISTRY}}:${{steps.get_version.outputs.SERVICE_VERSION}}
120+
push: true
121+
file: ./service/Dockerfile
122+
123+
# # Updates the README section on the DockerHub page
124+
- name: Update repo description
125+
# Note that this 3rd party extention is recommended in the DockerHub docs:
126+
# https://docs.docker.com/build/ci/github-actions/update-dockerhub-desc/
127+
uses: peter-evans/dockerhub-description@e98e4d1628a5f3be2be7c231e50981aee98723ae # v4.0.0
128+
with:
129+
username: ${{ secrets.DOCKERHUB_USERNAME }}
130+
password: ${{ secrets.DOCKERHUB_TOKEN }}
131+
repository: ${{vars.DOCKER_REGISTRY}}
132+
# This is the contents of what will be shown on DockerHub
133+
readme-filepath: ./service/README.md

0 commit comments

Comments
 (0)