name: Build Docker Image 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 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)