on: push: tags: - "v*" # Push events to matching v*, i.e. v1.0, v20.15.10 name: Create prerelease w/ binaries and static assets jobs: build-push-hatchet-api-amd: name: hatchet-api runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-amd64 \ --build-arg SERVER_TARGET=api \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-api-arm: name: hatchet-api runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-arm64 \ --build-arg SERVER_TARGET=api \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-api: name: Combine hatchet-api runs-on: ubicloud-standard-4 needs: - build-push-hatchet-api-amd - build-push-hatchet-api-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-api:${{steps.tag_name.outputs.tag}} build-push-hatchet-admin-amd: name: hatchet-admin runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-amd64 \ --build-arg SERVER_TARGET=admin \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-admin-arm: name: hatchet-admin runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-arm64 \ --build-arg SERVER_TARGET=admin \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-admin: name: Combine hatchet-admin runs-on: ubicloud-standard-4 needs: - build-push-hatchet-admin-amd - build-push-hatchet-admin-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-admin:${{steps.tag_name.outputs.tag}} build-push-hatchet-engine-amd: name: hatchet-engine runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-amd64 \ --build-arg SERVER_TARGET=engine \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-engine-arm: name: hatchet-engine runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-arm64 \ --build-arg SERVER_TARGET=engine \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-engine: name: Combine hatchet-engine runs-on: ubicloud-standard-4 needs: - build-push-hatchet-engine-amd - build-push-hatchet-engine-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-engine:${{steps.tag_name.outputs.tag}} build-push-hatchet-migrate-amd: name: hatchet-migrate runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=migrate \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ -t ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-amd64 \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-migrate-arm: name: hatchet-migrate runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=migrate \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ -t ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-arm64 \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-migrate: name: Combine hatchet-migrate runs-on: ubicloud-standard-4 needs: - build-push-hatchet-migrate-amd - build-push-hatchet-migrate-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-migrate:${{steps.tag_name.outputs.tag}} build-push-hatchet-frontend-amd: name: hatchet-frontend runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/frontend.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-amd64 \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-frontend-arm: name: hatchet-frontend runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/frontend.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-arm64 \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-frontend: name: Combine hatchet-frontend runs-on: ubicloud-standard-4 needs: - build-push-hatchet-frontend-amd - build-push-hatchet-frontend-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-frontend:${{steps.tag_name.outputs.tag}} build-push-hatchet-lite-amd: name: hatchet-lite-amd runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Set up QEMU uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=lite \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ -t hatchet-lite-tmp:amd64 \ . & DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=admin \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ -t hatchet-admin-tmp:amd64 \ . & DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=migrate \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ -t hatchet-migrate-tmp:amd64 \ . & wait DOCKER_BUILDKIT=1 docker build -f ./build/package/lite.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-amd64 \ --platform linux/amd64 \ --build-arg HATCHET_LITE_IMAGE=hatchet-lite-tmp:amd64 \ --build-arg HATCHET_ADMIN_IMAGE=hatchet-admin-tmp:amd64 \ --build-arg HATCHET_MIGRATE_IMAGE=hatchet-migrate-tmp:amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-lite-arm: name: hatchet-lite-arm runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Set up QEMU uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=lite \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ -t hatchet-lite-tmp:arm64 \ . & DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=admin \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ -t hatchet-admin-tmp:arm64 \ . & DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=migrate \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ -t hatchet-migrate-tmp:arm64 \ . & wait DOCKER_BUILDKIT=1 docker build -f ./build/package/lite.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-arm64 \ --platform linux/arm64 \ --build-arg HATCHET_LITE_IMAGE=hatchet-lite-tmp:arm64 \ --build-arg HATCHET_ADMIN_IMAGE=hatchet-admin-tmp:arm64 \ --build-arg HATCHET_MIGRATE_IMAGE=hatchet-migrate-tmp:arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-arm64 combine-hatchet-lite: name: Combine hatchet-lite runs-on: ubicloud-standard-4 needs: - build-push-hatchet-lite-amd - build-push-hatchet-lite-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-lite:${{steps.tag_name.outputs.tag}} build-push-hatchet-dashboard-amd: name: hatchet-dashboard-amd runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Set up QEMU uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=api \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/amd64 \ -t hatchet-api-tmp:amd64 \ . DOCKER_BUILDKIT=1 docker build -f ./build/package/dashboard.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-amd64 \ --platform linux/amd64 \ --build-arg HATCHET_API_IMAGE=hatchet-api-tmp:amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-dashboard-arm: name: hatchet-dashboard-arm runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 with: python-version: '3.14' - name: Generate docs snippets and examples working-directory: frontend/snippets run: python3 generate.py - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Set up QEMU uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0 - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/servers.dockerfile \ --build-arg SERVER_TARGET=api \ --build-arg VERSION=${{steps.tag_name.outputs.tag}} \ --platform linux/arm64 \ -t hatchet-api-tmp:arm64 \ . DOCKER_BUILDKIT=1 docker build -f ./build/package/dashboard.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-arm64 \ --platform linux/arm64 \ --build-arg HATCHET_API_IMAGE=hatchet-api-tmp:arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-arm64 combine-hatchet-dashboard: name: Combine hatchet-dashboard runs-on: ubicloud-standard-4 needs: - build-push-hatchet-dashboard-amd - build-push-hatchet-dashboard-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:${{steps.tag_name.outputs.tag}} build-push-hatchet-loadtest-amd: name: hatchet-loadtest runs-on: ubicloud-standard-4 steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/loadtest.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-amd64 \ --platform linux/amd64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-amd64 build-push-hatchet-loadtest-arm: name: hatchet-loadtest runs-on: ubicloud-standard-4-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Build run: | DOCKER_BUILDKIT=1 docker build -f ./build/package/loadtest.dockerfile \ -t ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-arm64 \ --platform linux/arm64 \ . - name: Push to GHCR run: | docker push ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-arm64 build-push-hatchet-loadtest: name: Combine hatchet-loadtest runs-on: ubicloud-standard-4 needs: - build-push-hatchet-loadtest-amd - build-push-hatchet-loadtest-arm steps: - name: Get tag name id: tag_name run: echo "tag=${GITHUB_TAG/refs\/tags\//}" >> $GITHUB_OUTPUT env: GITHUB_TAG: ${{ github.ref }} - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Login to GHCR id: login-ghcr run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin - name: Pull amd64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-amd64 - name: Pull arm64 run: docker pull ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-arm64 - name: Combine run: | docker manifest create ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}} \ ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-amd64 \ ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}-arm64 docker manifest push ghcr.io/hatchet-dev/hatchet/hatchet-loadtest:${{steps.tag_name.outputs.tag}}