Skip to content

8e8b2c/emissions example #151

8e8b2c/emissions example

8e8b2c/emissions example #151

Workflow file for this run

name: Main
on:
pull_request:
push:
branches:
- main
tags:
- "v*.*.*"
jobs:
build-wasm:
name: Build DNA
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Install nix
uses: cachix/install-nix-action@v27
with:
install_url: https://releases.nixos.org/nix/nix-2.23.3/install
extra_nix_config: |
experimental-features = flakes nix-command
- uses: cachix/cachix-action@v15
with:
name: holochain-ci
- name: Set up Rust cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: holoom-dna-${{ hashFiles('**/Cargo.lock') }}
- name: Build DNA
run: |
nix develop --command \
npm run build:dna
- uses: actions/upload-artifact@v4
with:
name: happ_workdir
path: workdir
retention-days: 1
build-packages:
runs-on: ubuntu-20.04
steps:
- name: Checkout the repo
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20.12.2"
cache: "npm"
- name: Setup node dependency cache
uses: actions/cache@v4
with:
path: "**/node_modules"
key: node_modules-${{ hashFiles('**/package-lock.json')}}
- run: npm i
- run: npm run -w @holoom/types build
- run: npm run -w @holoom/client build
- run: npm run -w @holoom/authority build
- uses: actions/upload-artifact@v4
with:
name: types-dist
path: packages/types/dist
retention-days: 1
- uses: actions/upload-artifact@v4
with:
name: client-dist
path: packages/client/dist
retention-days: 1
- uses: actions/upload-artifact@v4
with:
name: authority-dist
path: packages/authority/dist
retention-days: 1
tryorama-tests:
name: Tryorama Tests
runs-on: ubuntu-20.04
needs:
- build-wasm
- build-packages
strategy:
fail-fast: false
matrix:
shard: [1/6, 2/6, 3/6, 4/6, 5/6, 6/6]
steps:
- uses: actions/checkout@v4
- name: Install nix
uses: cachix/install-nix-action@v27
with:
install_url: https://releases.nixos.org/nix/nix-2.23.3/install
extra_nix_config: |
experimental-features = flakes nix-command
- uses: cachix/cachix-action@v15
with:
name: holochain-ci
- run: rm -rf workdir
- name: Download DNA
uses: actions/download-artifact@v4
with:
name: happ_workdir
path: workdir
- uses: actions/download-artifact@v4
with:
name: types-dist
path: packages/types/dist
- uses: actions/download-artifact@v4
with:
name: client-dist
path: packages/client/dist
- uses: actions/download-artifact@v4
with:
name: authority-dist
path: packages/authority/dist
- name: Setup node dependency cache
uses: actions/cache@v4
with:
path: "**/node_modules"
key: node_modules-${{ hashFiles('**/package-lock.json')}}
- run: |
nix develop --command bash -c \
"npm i -w @holoom/tryorama && TRYORAMA_LOG_LEVEL=error npx -w @holoom/tryorama vitest run --shard ${{ matrix.shard }}"
release:
name: Publish release artefacts
if: startsWith(github.ref, 'refs/tags/v')
needs:
- tryorama-tests
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download happ_workdir
uses: actions/download-artifact@v4
with:
name: happ_workdir
path: happ_workdir
- name: Move DNA
run: mv happ_workdir/holoom.dna ./holoom.dna
- name: Download types dist
uses: actions/download-artifact@v4
with:
name: types-dist
path: packages/types/dist
- name: Download client dist
uses: actions/download-artifact@v4
with:
name: client-dist
path: packages/client/dist
- name: Download external-id-attestor dist
uses: actions/download-artifact@v4
with:
name: authority-dist
path: packages/authority/dist
- name: Release binaries
uses: softprops/action-gh-release@v2
with:
files: |
holoom.dna
- uses: actions/setup-node@v4
with:
node-version: "20.12.2"
registry-url: "https://registry.npmjs.org"
- name: Publish types to npm
run: npm publish --access public -w @holoom/types
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish client to npm
run: npm publish --access public -w @holoom/client
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Publish authority to npm
run: npm publish --access public -w @holoom/authority
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}