Skip to content

Added changelog for enum serialization changes #941

Added changelog for enum serialization changes

Added changelog for enum serialization changes #941

Workflow file for this run

name: Test
on:
pull_request:
push:
branches:
- "main"
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
jobs:
integration-test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Check out source code
uses: actions/checkout@v4
- name: Install nix
uses: cachix/install-nix-action@v30
with:
install_url: https://releases.nixos.org/nix/nix-2.25.4/install
- name: Set up cachix
uses: cachix/cachix-action@v15
with:
name: holochain-ci
- name: Restore test zome build
uses: actions/cache/restore@v4
env:
cache-name: test-zome
with:
path: |
.cargo
target
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }}
- name: Build Nix packages
run: nix develop -c $SHELL -c "holochain --version"
- name: Build test fixture
run: nix develop -c $SHELL -c "./build-fixture.sh"
- name: Save test zome build
uses: actions/cache/save@v4
env:
cache-name: test-zome
with:
path: |
.cargo
target
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('Cargo.lock') }}
- name: Install JS packages
run: nix develop -c $SHELL -c "npm ci"
- name: Run tests
run: nix develop -c $SHELL -c "npm t"
- name: Run doc test of app websocket
run: nix develop -c $SHELL -c "./doc-test-app-ws.sh"
- name: Run doc test of signal
run: nix develop -c $SHELL -c "./doc-test-signal.sh"
- name: Setup tmate session if a previous step failed
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10
bundle:
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
node: [ 20, 22 ]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Check out source code
uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Install NPM packages
run: npm ci
- name: Build client library
run: npm run build
- name: Ensure Node.js can load the built client library
run: node lib/index.js
- name: Create package tarball
run: npm pack
- name: Upload package tarball
uses: actions/upload-artifact@v4
with:
name: client-${{ matrix.os }}-${{ matrix.node }}.tgz
path: holochain-client-*.tgz
overwrite: true
- name: Setup tmate session if a previous step failed
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10
bundle-test:
needs: bundle
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
node: [ 20, 22 ]
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- name: Download package tarball
uses: actions/download-artifact@v4
with:
name: client-${{ matrix.os }}-${{ matrix.node }}.tgz
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
- name: Create a Vite project from template
run: npm create vite@latest test-app -- --template vanilla-ts
- name: Add JS client to project
run: |
cd test-app
npm i $(ls ../holochain-client-*.tgz)
- name: Write client import to main.js
run: |
cd test-app
echo 'import * as client from "@holochain/client";' > main.js
- name: Bundle app for production
run: |
cd test-app
npm run build
- name: Setup tmate session if a previous step failed
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10
ci_pass:
if: ${{ always() }}
runs-on: "ubuntu-latest"
needs:
- integration-test
- bundle
- bundle-test
steps:
- name: check status
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}