Skip to content

Build and publish Mina lightweight network Docker images #514

Build and publish Mina lightweight network Docker images

Build and publish Mina lightweight network Docker images #514

Workflow file for this run

name: Build and publish Mina lightweight network Docker images
on:
schedule:
- cron: "30 1 * * *"
workflow_dispatch: {}
jobs:
build-and-publish-amd64:
runs-on: ubuntu-latest
timeout-minutes: 300
steps:
- name: Install and cache Hetzner Cloud CLI
uses: 3bit/setup-hcloud@v2
- name: Create mina-build-system-amd64 cloud VM
run: hcloud server create --name mina-build-system-amd64 --datacenter fsn1-dc14 --primary-ipv4 35577977 --image 153392983 --type cpx41 --ssh-key app@localhost --start-after-create
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 120 seconds
run: sleep 120s
shell: bash
- name: Update remote repositories
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_AMD64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/git-pull-all.sh"
command_timeout: 10m
- name: Build and publish Docker images (major branches)
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_AMD64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/o1labs/mina-lightnet-docker/scripts/build-all.sh amd64 ${HOME}/projects/o1labs/mina ${HOME}/projects/o1labs/Archive-Node-API ${HOME}/projects/o1labs/mina-lightnet-docker \"v0.1.1\" o1labs \"develop compatible master\""
command_timeout: 300m
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Power off the VM
run: hcloud server poweroff mina-build-system-amd64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Delete the VM
run: hcloud server delete mina-build-system-amd64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
build-and-publish-arm64:
needs: [build-and-publish-amd64] # Make jobs run sequentially to avoid possible cloud provider issues
runs-on: ubuntu-latest
timeout-minutes: 300
steps:
- name: Install and cache Hetzner Cloud CLI
uses: 3bit/setup-hcloud@v2
- name: Create mina-build-system-arm64 cloud VM
run: hcloud server create --name mina-build-system-arm64 --datacenter fsn1-dc14 --primary-ipv4 45241536 --image 153393088 --type cax31 --ssh-key app@localhost --start-after-create
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 120 seconds
run: sleep 120s
shell: bash
- name: Update remote repositories
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_ARM64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/git-pull-all.sh"
command_timeout: 10m
- name: Build and publish Docker images (major branches)
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_ARM64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/o1labs/mina-lightnet-docker/scripts/build-all.sh arm64 ${HOME}/projects/o1labs/mina ${HOME}/projects/o1labs/Archive-Node-API ${HOME}/projects/o1labs/mina-lightnet-docker \"v0.1.1\" o1labs \"develop compatible master\""
command_timeout: 300m
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Power off the VM
run: hcloud server poweroff mina-build-system-arm64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Delete the VM
run: hcloud server delete mina-build-system-arm64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
create-and-publish-manifests:
needs: [build-and-publish-amd64, build-and-publish-arm64]
runs-on: ubuntu-latest
timeout-minutes: 60
steps:
- name: Install and cache Hetzner Cloud CLI
uses: 3bit/setup-hcloud@v2
- name: Create mina-build-system-arm64 cloud VM
run: hcloud server create --name mina-build-system-arm64 --datacenter fsn1-dc14 --primary-ipv4 45241536 --image 153393088 --type cax31 --ssh-key app@localhost --start-after-create
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 120 seconds
run: sleep 120s
shell: bash
- name: Update remote repositories
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_ARM64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/git-pull-all.sh"
command_timeout: 10m
- name: Create, annotate and publish Docker images manifests
uses: appleboy/[email protected]
with:
host: ${{ secrets.MINA_BUILD_SYSTEM_ARM64_IP }}
username: ${{ secrets.MINA_BUILD_SYSTEM_SSH_USER_NAME }}
key: ${{ secrets.MINA_BUILD_SYSTEM_SSH_PRIVATE_KEY }}
script: bash -ilc "${HOME}/projects/o1labs/mina-lightnet-docker/scripts/manage-manifests.sh o1labs \"develop compatible master\""
command_timeout: 60m
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Power off the VM
run: hcloud server poweroff mina-build-system-arm64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash
- name: Delete the VM
run: hcloud server delete mina-build-system-arm64
env:
HCLOUD_TOKEN: ${{ secrets.HETZNER_API_TOKEN }}
- name: Sleep for 15 seconds
run: sleep 15s
shell: bash