Skip to content

Prepare Optimized Binary Draft (internal only) #52

Prepare Optimized Binary Draft (internal only)

Prepare Optimized Binary Draft (internal only) #52

name: Prepare Optimized Binary Draft (internal only)
# The code (like generate-release-body) will be taken from the tag version, not master
on:
workflow_dispatch:
inputs:
sha:
description: full sha to build the binary from
required: true
jobs:
####### Building binaries #######
build-binary:
runs-on: bare-metal
strategy:
matrix:
cpu: ["", "skylake"]
env:
RUSTFLAGS: "-C target-cpu=${{ matrix.cpu }}"
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.sha }}
- name: Setup Rust toolchain
run: rustup show
- name: Build Node
run: cargo build --profile=production --all
- name: Save parachain binary
if: ${{ matrix.cpu == '' }}
run: |
mkdir -p binaries
cp target/production/tanssi-node binaries/tanssi-node
cp target/production/container-chain-frontier-node binaries/container-chain-frontier-node
cp target/production/container-chain-simple-node binaries/container-chain-simple-node
- name: Save parachain custom binary
if: ${{ matrix.cpu != '' }}
run: |
mkdir -p binaries
cp target/production/tanssi-node binaries/tanssi-node-${{matrix.cpu}}
cp target/production/container-chain-frontier-node binaries/container-chain-frontier-node-${{matrix.cpu}}
cp target/production/container-chain-simple-node binaries/container-chain-simple-node-${{matrix.cpu}}
- name: Upload binary
uses: actions/upload-artifact@v3
with:
name: binaries
path: binaries
####### Prepare the release draft #######
docker-tanssi:
runs-on: ubuntu-latest
needs: ["build-binary"]
strategy:
matrix:
image: ["tanssi", "container-chain-simple-template", "container-chain-evm-template"]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.sha }}
- uses: actions/download-artifact@v3
with:
name: binaries
path: build
- name: Prepare
id: prep
run: |
DOCKER_IMAGE=moondancelabs/${{matrix.image}}
SHA8="$(git log -1 --format="%H" | cut -c1-8)"
TAGS="${DOCKER_IMAGE}:sha-${SHA8}-opt"
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
echo "created=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
version: latest
driver-opts: |
image=moby/buildkit:master
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
file: ./docker/${{matrix.image}}.Dockerfile
platforms: linux/amd64
push: true
tags: ${{ steps.prep.outputs.tags }}
labels: |
org.opencontainers.image.title=${{ github.event.repository.name }}
org.opencontainers.image.description=${{ github.event.repository.description }}
org.opencontainers.image.url=${{ github.event.repository.html_url }}
org.opencontainers.image.source=${{ github.event.repository.clone_url }}
org.opencontainers.image.created=${{ steps.prep.outputs.created }}
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.licenses=${{ github.event.repository.license.spdx_id }}
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Tag it with moondance-labs for 6 month
run: |
MOONDANCELABS_TAG=`echo "${{ steps.prep.outputs.tags }}"`
docker pull ${{ steps.prep.outputs.tags }}
docker tag ${{ steps.prep.outputs.tags }} $MOONDANCELABS_TAG
docker push $MOONDANCELABS_TAG