Skip to content

fix: Serialize WASM code for snapshots (#5009) #6

fix: Serialize WASM code for snapshots (#5009)

fix: Serialize WASM code for snapshots (#5009) #6

Workflow file for this run

name: I2::Dev::Publish
on:
push:
branches: [main]
env:
CARGO_TERM_COLOR: always
DOCKER_COMPOSE_PATH: defaults
ARTIFACTS_DIR: tmp/artifacts
BIN_PATH: /usr/local/bin
jobs:
build_executor:
runs-on: ubuntu-latest
container:
image: hyperledger/iroha2-ci:nightly-2024-04-18
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Build iroha executor
run: cargo run --bin iroha_wasm_builder -- build ./wasm_samples/default_executor --optimize --out-file ${{ env.DOCKER_COMPOSE_PATH }}/executor.wasm
- name: Upload executor to reuse in other jobs
uses: actions/upload-artifact@v4
with:
name: executor.wasm
path: ${{ env.DOCKER_COMPOSE_PATH }}/executor.wasm
retention-days: 1
registry_save_build_artifacts:
runs-on: [self-hosted, Linux, iroha2]
container:
image: hyperledger/iroha2-ci:nightly-2024-04-18
needs: build_executor
steps:
- uses: actions/checkout@v4
- name: Download executor.wasm file
uses: actions/download-artifact@v4
with:
name: executor.wasm
path: ${{ env.DOCKER_COMPOSE_PATH }}
- name: Set up Docker Buildx
id: buildx
if: always()
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Login to DockerHub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to Soramitsu Harbor
uses: docker/login-action@v3
with:
registry: docker.soramitsu.co.jp
username: ${{ secrets.HARBOR_USERNAME }}
password: ${{ secrets.HARBOR_TOKEN }}
- name: Build and push iroha2:dev image
uses: docker/build-push-action@v6
with:
context: .
file: Dockerfile
push: true
tags: |
hyperledger/iroha:dev
docker.soramitsu.co.jp/iroha2/iroha:dev
labels: commit=${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Copy artifacts from iroha image
run: |
mkdir -p ${{ env.ARTIFACTS_DIR }}
docker run --rm --entrypoint cat hyperledger/iroha:dev ${{ env.BIN_PATH }}/iroha > ${{ env.ARTIFACTS_DIR }}/iroha
docker run --rm --entrypoint cat hyperledger/iroha:dev ${{ env.BIN_PATH }}/irohad > ${{ env.ARTIFACTS_DIR }}/irohad
docker run --rm --entrypoint cat hyperledger/iroha:dev ${{ env.BIN_PATH }}/kagami > ${{ env.ARTIFACTS_DIR }}/kagami
- name: Generate schema
run: cargo run --bin kagami -- schema > ${{ env.ARTIFACTS_DIR }}/schema.json
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: iroha_binaries_and_schema
path: ${{ env.ARTIFACTS_DIR }}
telemetry:
# FIXME #2646
if: false
runs-on: ubuntu-latest
container:
image: hyperledger/iroha2-ci:nightly-2024-04-18
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- name: Run debug tests and save telemetry
env:
TELEMETRY_FILE: ../target/telemetry/debug.json.lz4
run: |
mkdir -p target/telemetry
mold --run cargo test -p iroha --all-features -- unstable_network || true
- name: Run release tests and save telemetry
env:
TELEMETRY_FILE: ../target/telemetry/release.json.lz4
run: mold --run cargo test -p iroha --all-features --release -- unstable_network || true
- name: Install script dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends lz4 jq
- name: Print debug telemetry info
run: |
./scripts/analyze_telemetry.sh target/telemetry/debug.json.lz4 >target/telemetry/debug.md
- name: Print release telemetry info
run: ./scripts/analyze_telemetry.sh target/telemetry/release.json.lz4 >target/telemetry/release.md
- name: Print debug telemetry info
run: |
echo '## Debug build'
cat target/telemetry/debug.md
- name: Print release telemetry info
run: |
echo '## Release build'
cat target/telemetry/release.md
- name: Create telemetry comment
uses: actions-ecosystem/action-create-comment@v1
with:
body: |
\# Telemetry info
\## Debug build
${{ steps.debug-telemetry.outputs.body }}
\## Release build
${{ steps.release-telemetry.outputs.body }}
github_token: ${{ secrets.github_token }}
continue-on-error: true
- name: Archive telemetry
uses: actions/upload-artifact@v4
with:
name: telemetry
path: target/telemetry