Skip to content

test executor build in CI #692

test executor build in CI

test executor build in CI #692

Workflow file for this run

name: I2::Dev::Publish
on:
push:
branches: [feature/DOPS-3319/i2-genesis-executor-in-image]
env:
CARGO_TERM_COLOR: always
DOCKER_COMPOSE_PATH: defaults
jobs:
build_executor:
runs-on: ubuntu-latest # [self-hosted, Linux, iroha2]
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_cli -- build ./default_executor --optimize --outfile defaults/executor.wasm
- name: Upload executor to reuse in other jobs
uses: actions/upload-artifact@v4
with:
name: executor.wasm
path: configs/swarm/executor.wasm
retention-days: 1
registry:
runs-on: ubuntu-latest # [self-hosted, Linux, iroha2]
needs: build_executor
steps:
- uses: actions/checkout@v4
- name: Download executor.wasm file
uses: actions/download-artifact@v4
with:
name: executor.wasm
path: defaults/executor.wasm
- name: Set up Docker Buildx
id: buildx
if: always()
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Build and export to Docker iroha:local and iroha:dev images
uses: docker/build-push-action@v6
if: always()
with:
context: .
load: true
file: Dockerfile
tags: |
hyperledger/iroha:local
bastos525/iroha:dev
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Test docker-compose.single.yml before pushing
run: |
docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.single.yml up --wait || exit 1
docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.single.yml down
- name: Test docker-compose.local.yml before pushing
run: |
docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.local.yml up --wait || exit 1
docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.local.yml down
# - name: Test docker-compose.yml before pushing
# run: |
# docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.yml up --wait || exit 1
# docker compose -f ${{ env.DOCKER_COMPOSE_PATH }}/docker-compose.yml down
- 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: Push iroha2:dev image
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: |
bastos525/iroha:dev
labels: commit=${{ github.sha }}
# archive_binaries_and_schema:
# runs-on: ubuntu-latest
# container:
# image: hyperledger/iroha2-ci:nightly-2024-04-18
# steps:
# - uses: actions/checkout@v4
# - uses: Swatinem/rust-cache@v2
# - name: Build
# run: mold --run cargo build --release --verbose
# - name: Archive iroha
# uses: actions/upload-artifact@v3
# with:
# name: cargo-build-release
# path: target/release/iroha
# - name: Archive Iroha client CLI
# uses: actions/upload-artifact@v3
# with:
# name: cargo-client-cli-build-release
# path: target/release/iroha
# - name: Archive kagami
# uses: actions/upload-artifact@v3
# with:
# name: cargo-crypto-cli-build-release
# path: target/release/kagami
# - name: Generate schema
# run: |
# mkdir -p target/schema
# cargo run --bin kagami -- schema >target/schema/schema.json
# - name: Archive schema
# uses: actions/upload-artifact@v3
# with:
# name: schema
# path: target/schema
# 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@v3
# with:
# name: telemetry
# path: target/telemetry