From 53c3257ecdcbe999243825ed4e931048e7fdea5b Mon Sep 17 00:00:00 2001 From: Juanito Date: Mon, 2 Oct 2023 16:56:24 -0300 Subject: [PATCH] Updating test workflow (#124) * Updating test workflow * Adding some annotations * Fixing path issue. * Fixing fetch_trees name * Adding push condition * Main (#104) * Fix raw name build (#122) * Added fetch trees tool (#123) Fetches a list of trees from an RPC endpoint. --------- Co-authored-by: Linus Kendall --------- Co-authored-by: Linus Kendall --- .github/workflows/test.yml | 128 +++++++++++++++++++++++++++++++------ 1 file changed, 109 insertions(+), 19 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bcfbce00a..03dfd81ca 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,31 +1,121 @@ -name: Build & Test +name: Build das api components +# This workflow uses github runners. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +# This may be adjusted to whatever suits best your runners config. +# Current config will build on manual trigger or pull-request (each push) on: - push: + # pull_request can be removed, to save minutes on github runners pull_request: + workflow_dispatch: + push: branches: - - main + - 'main' + env: - RUST_TOOLCHAIN: stable + CARGO_TERM_COLOR: always + jobs: build-api: - runs-on: buildjet-4vcpu-ubuntu-2204 - steps: - - uses: actions/checkout@v3 - - name: Build - run: | - cd das_api - cargo build - shell: bash - build-ingest: - runs-on: buildjet-8vcpu-ubuntu-2204 + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-22.04] + # This can be also be runned on self-hosted github runners + runs-on: ["${{ matrix.os }}"] + steps: - - uses: actions/checkout@v3 - - name: Build + - name: checkout repo + uses: actions/checkout@v3 + # This step can be omited, to save storage space on the organization account + # Build process will take longer + - name: set build cache + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + digital-asset-rpc-infrastructure/target/ + key: ${{ matrix.os }}_digital-asset-rpc-infrastructure_${{ hashFiles('digital-asset-rpc-infrastructure/Cargo.lock') }} + restore-keys: | + ${{ matrix.os }}_digital-asset-rpc-infrastructure + + - name: build digital asset rpc infra + run: cargo build --verbose --release + + - name: build das_api + working-directory: das_api + run: cargo build --verbose --release + + - name: build migration + working-directory: migration + run: cargo build --verbose --release + + - name: rename binaries for ubuntu22 release + if: matrix.os == 'ubuntu-22.04' run: | - cd nft_ingester - cargo build - shell: bash + mv target/release/nft_ingester target/release/nft_ingester22 + mv target/release/fetch_trees target/release/fetch_trees22 + mv das_api/target/release/das_api das_api/target/release/das_api22 + mv migration/target/release/migration migration/target/release/migration22 + + # This steps can be omited to save space, are mostly in place to validate binaries (manually) and path to them + # Omiting this will save on storage consumption on the account + - name: Publish artifact + if: matrix.os == 'ubuntu-22.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: nft_ingester22 + path: target/release/nft_ingester22 + + - name: Publish artifact + if: matrix.os == 'ubuntu-22.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: das_api22 + path: das_api/target/release/das_api22 + + - name: Publish artifact + if: matrix.os == 'ubuntu-22.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: migration22 + path: migration/target/release/migration22 + + - name: Publish artifact + if: matrix.os == 'ubuntu-22.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: fetch-trees22 + path: migration/target/release/fetch_trees22 + - name: Publish artifact + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: nft_ingester + path: target/release/nft_ingester + - name: Publish artifact + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: das_api + path: das_api/target/release/das_api + - name: Publish artifact + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: migration + path: migration/target/release/migration + - name: Publish artifact + if: matrix.os == 'ubuntu-20.04' + uses: actions/upload-artifact@v3.1.1 + with: + name: fetch-trees + path: target/release/fetch_trees