diff --git a/.github/workflows/build-image.yaml b/.github/workflows/build-image.yaml index c79243e..03e5283 100644 --- a/.github/workflows/build-image.yaml +++ b/.github/workflows/build-image.yaml @@ -4,26 +4,66 @@ on: push: branches: - "main" + schedule: + - cron: "0 0 * * *" workflow_dispatch: jobs: docker: runs-on: ubuntu-latest steps: + - name: Check latest Pocketbase Version + run: | + curl -s https://api.github.com/repos/pocketbase/pocketbase/releases/latest | jq -r '.tag_name' > latest_version + id: latest_version + + - name: Print latest Pocketbase Version + run: | + cat latest_version + id: print_version + + - name: Check latest Docker Image Version + run: | + docker pull lukehagar/pocketbase:latest + docker inspect lukehagar/pocketbase:latest --format='{{index .Config.Labels "org.opencontainers.image.version"}}' > latest_docker_version + id: latest_docker_version + + - name: Print latest Docker Image Version + run: | + cat latest_docker_version + id: print_docker_version + + - name: Check if latest version is different + run: | + if [ "$(cat latest_version)" != "$(cat latest_docker_version)" ]; then + echo "Versions are different" + echo "::set-output name=build::true" + else + echo "Versions are the same" + echo "::set-output name=build::false" + fi + id: check_version + - name: Set up QEMU + if: steps.check_version.outputs.build == 'true' uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx + if: steps.check_version.outputs.build == 'true' uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub + if: steps.check_version.outputs.build == 'true' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push - uses: docker/build-push-action@v4 + if: steps.check_version.outputs.build == 'true' + uses: docker/build-push-action@v5 with: push: true tags: lukehagar/pocketbase:latest + build-args: | + POCKETBASE_VERSION=$(cat latest_version) diff --git a/Dockerfile b/Dockerfile index 34e3000..9d67f1f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:latest -ARG PB_VERSION=0.21.1 +ARG POCKETBASE_VERSION=0.21.1 ARG ENCRYPTION_KEY ENV PB_ENCRYPTION_KEY=$ENCRYPTION_KEY @@ -9,7 +9,7 @@ RUN apk add --no-cache \ ca-certificates # download and unzip PocketBase -ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip +ADD https://github.com/pocketbase/pocketbase/releases/download/v${POCKETBASE_VERSION}/pocketbase_${POCKETBASE_VERSION}_linux_amd64.zip /tmp/pb.zip RUN unzip /tmp/pb.zip -d /pb/ EXPOSE 8080