Skip to content

Issue Credential V2.0 message structures #6097

Issue Credential V2.0 message structures

Issue Credential V2.0 message structures #6097

Workflow file for this run

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_VERSON: 1.70.0
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
components: rustfmt
- name: "Verify code formatting"
run: |
cargo +nightly 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_VERSON }}
- 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('ci/libvcx.dockerfile') }}
HASH_DOCKERFILE_VDRPROXY=${{ hashFiles('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') }}
HASH_SRC_WRAPPER_JAVA=${{ hashFiles('wrappers/java') }}
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
steps:
- name: "Git checkout"
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN_VERSON }}
components: clippy
- name: "Install dependencies"
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev
- name: "Verify clippy across the entire workspace with default features"
run: |
cargo clippy --tests --all-features
env:
RUSTFLAGS: -D warnings
aries_vcx_clippy:
runs-on: ubuntu-20.04
strategy:
matrix:
backend: ["vdrtools", "modular_libs", "vdr_proxy_ledger"]
steps:
- name: "Git checkout"
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN_VERSON }}
components: clippy
- name: "Install dependencies"
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev
- name: "Verify clippy across the entire workspace with default features"
run: |
cargo clippy -p aries-vcx --features legacy_proof,migration --features ${{ matrix.backend }} --no-default-features
env:
RUSTFLAGS: -D warnings
aries_vcx_core_clippy:
runs-on: ubuntu-20.04
strategy:
matrix:
backend: ["vdrtools_anoncreds", "modular_libs", "vdr_proxy_ledger"]
steps:
- name: "Git checkout"
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN_VERSON }}
components: clippy
- name: "Install dependencies"
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev
- name: "Verify clippy across the entire workspace with default features"
run: |
cargo clippy -p aries_vcx_core --features legacy_proof,vdrtools_wallet --features ${{ matrix.backend }}
env:
RUSTFLAGS: -D warnings
libvcx_core_clippy:
runs-on: ubuntu-20.04
strategy:
matrix:
backend: ["anoncreds_credx", "anoncreds_vdrtools"]
steps:
- name: "Git checkout"
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN_VERSON }}
components: clippy
- name: "Install dependencies"
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev
- name: "Verify clippy across the entire workspace with default features"
run: |
cargo clippy -p libvcx_core --features ${{ matrix.backend }}
env:
RUSTFLAGS: -D warnings
node_wrapper_clippy:
runs-on: ubuntu-20.04
strategy:
matrix:
backend: ["anoncreds_credx", "anoncreds_vdrtools"]
steps:
- name: "Git checkout"
uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ env.RUST_TOOLCHAIN_VERSON }}
components: clippy
- name: "Install dependencies"
shell: bash
run: |
sudo apt-get update -y
sudo apt-get install -y libsodium-dev libssl-dev libzmq3-dev
- name: "Verify clippy across the entire workspace with default features"
run: |
cargo clippy -p vcx-napi-rs --features ${{ matrix.backend }}
env:
RUSTFLAGS: -D warnings
##########################################################################################
############################## 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: "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 'modular_libs' -- --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
strategy:
matrix:
features: [
"anoncreds_vdrtools",
"anoncreds_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_VERSON }}
skip-docker-setup: true
- name: "Run workspace unit tests"
run: RUST_TEST_THREADS=1 cargo test --workspace --lib --exclude aries-vcx-agent --exclude libvdrtools --exclude wallet_migrator --features ${{ matrix.features }}
test-integration-aries-vcx:
needs: workflow-setup
runs-on: ubuntu-20.04
strategy:
matrix:
features: [
"vdrtools",
"modular_libs"
]
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_VERSON }}
- name: "Run aries-vcx integration tests"
run: RUST_TEST_THREADS=1 cargo test --manifest-path="aries_vcx/Cargo.toml" --features ${{ matrix.features }} -- --ignored;
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_VERSON }}
- name: "Run aries-vcx tests: mysql_test"
run: RUST_TEST_THREADS=1 cargo test --manifest-path="aries_vcx/Cargo.toml" test_mysql -- --include-ignored;
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://raw.githubusercontent.com/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_VERSON }}
skip-vdrproxy-setup: false
- name: "Run aries-vcx tests: vdrproxy_test"
run: RUST_TEST_THREADS=1 cargo test --manifest-path="aries_vcx/Cargo.toml" -F vdr_proxy_ledger -- --ignored
- name: "Collect docker logs on failure"
if: failure()
uses: ./.github/actions/upload-docker-logs
with:
name: "docker-services-${{ github.job }}"
test-integration-aries-vcx-migration:
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_VERSON }}
- name: "Run aries-vcx tests: pool_tests agency_pool_tests"
run: |
cargo test --manifest-path="wallet_migrator/Cargo.toml";
RUST_TEST_THREADS=1 CARGO_INCREMENTAL=0 TEST_POOL_IP=127.0.0.1 cargo test --manifest-path="aries_vcx/Cargo.toml" -F migration --test test_credential_issuance -- --include-ignored;
RUST_TEST_THREADS=1 CARGO_INCREMENTAL=0 TEST_POOL_IP=127.0.0.1 cargo test --manifest-path="aries_vcx/Cargo.toml" -F migration --test test_credential_retrieval -- --include-ignored;
RUST_TEST_THREADS=1 CARGO_INCREMENTAL=0 TEST_POOL_IP=127.0.0.1 cargo test --manifest-path="aries_vcx/Cargo.toml" -F migration --test test_proof_presentation -- --include-ignored;
RUST_TEST_THREADS=1 CARGO_INCREMENTAL=0 TEST_POOL_IP=127.0.0.1 cargo test --manifest-path="aries_vcx/Cargo.toml" -F migration --test test_revocations -- --include-ignored;
test-integration-libvcx:
needs: workflow-setup
if: ${{ needs.workflow-setup.outputs.SKIP_CI != 'true' }}
runs-on: ubuntu-20.04
strategy:
matrix:
features: [
"anoncreds_vdrtools",
"anoncreds_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_VERSON }}
- name: "Run libvcx_core integration tests"
run: |
RUST_TEST_THREADS=1 cargo test --features ${{ matrix.features }} --manifest-path="libvcx_core/Cargo.toml" -- --include-ignored;
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_VERSON }}
- name: "Run resolver tests"
run: |
RUST_TEST_THREADS=1 cargo test -p did_doc -p did_parser -p did_resolver -p did_resolver_registry -p did_resolver_sov -p did_resolver_web -p did_doc_sov -p did_key -p did_peer --test "*"
test-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_VERSON }}
skip-docker-setup: true
node-version: ${{ matrix.node-version }}
- name: "Run tests"
run: cd wrappers/node && npm run test
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_VERSON }}
node-version: ${{ matrix.node-version }}
- name: "Run wrapper integration tests"
run: (cd wrappers/node && npm run test:integration)
- name: "Install vcxagent-core dependencies"
run: (cd agents/node/vcxagent-core && npm install)
- name: "Run demo"
run: (cd agents/node/vcxagent-core && AGENCY_URL=http://localhost:8080 npm run demo)
- name: "Run demo with revocation"
run: (cd agents/node/vcxagent-core && AGENCY_URL=http://localhost:8080 npm run demo:revocation)
- name: "Run integration tests"
run: (cd 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 }} ./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 }} ./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: ghcr.io/hyperledger/aries-vcx/napi-rs-alpine
build: |-
set -e
env
unset CC
unset CXX
cd 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.8.0/MacPorts-2.8.0-12-Monterey.pkg
sudo installer -pkg ./MacPorts-2.8.0-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_VERSON }}
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/[email protected]
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' }}