Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updating test workflow #124

Merged
merged 6 commits into from
Oct 2, 2023
Merged
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 109 additions & 19 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -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
Juanito87 marked this conversation as resolved.
Show resolved Hide resolved
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/[email protected]
with:
name: nft_ingester22
path: target/release/nft_ingester22

- name: Publish artifact
if: matrix.os == 'ubuntu-22.04'
uses: actions/[email protected]
with:
name: das_api22
path: das_api/target/release/das_api22

- name: Publish artifact
if: matrix.os == 'ubuntu-22.04'
uses: actions/[email protected]
with:
name: migration22
path: migration/target/release/migration22

- name: Publish artifact
if: matrix.os == 'ubuntu-22.04'
uses: actions/[email protected]
with:
name: fetch-trees22
path: migration/target/release/fetch_trees22

- name: Publish artifact
if: matrix.os == 'ubuntu-20.04'
uses: actions/[email protected]
with:
name: nft_ingester
path: target/release/nft_ingester

- name: Publish artifact
if: matrix.os == 'ubuntu-20.04'
uses: actions/[email protected]
with:
name: das_api
path: das_api/target/release/das_api

- name: Publish artifact
if: matrix.os == 'ubuntu-20.04'
uses: actions/[email protected]
with:
name: migration
path: migration/target/release/migration

- name: Publish artifact
if: matrix.os == 'ubuntu-20.04'
uses: actions/[email protected]
with:
name: fetch-trees
path: target/release/fetch_trees
Loading