fix: Serialize WASM code for snapshots (#5009) #6
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |