Skip to content

Commit

Permalink
ci: add libindy setup
Browse files Browse the repository at this point in the history
  • Loading branch information
genaris committed Dec 23, 2022
1 parent b201013 commit e8a6716
Show file tree
Hide file tree
Showing 3 changed files with 148 additions and 7 deletions.
18 changes: 18 additions & 0 deletions .github/actions/setup-libindy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Setup Libindy
description: Download and install the libindy binary from the sovrin repository
author: 'timo@animo.id'

runs:
using: composite
steps:
- name: Setup Indy
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys CE7709D068DB5E88
sudo add-apt-repository "deb https://repo.sovrin.org/sdk/deb bionic stable"
sudo apt-get update -y
sudo apt-get install -y --allow-unauthenticated libindy
shell: bash

branding:
icon: scissors
color: purple
Original file line number Diff line number Diff line change
@@ -1,12 +1,6 @@
name: Continuous Deployment
name: Continuous Deployment - Canary Release

on:
workflow_dispatch:
inputs:
releaseType:
description: The type of release. Should be one of "major", "minor", "patch"
required: true
default: 'patch'
pull_request:
branches:
- main
Expand Down Expand Up @@ -37,6 +31,11 @@ jobs:
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Some packages need indy-sdk for node as part of yarn install
- name: Setup Libindy
uses: ./.github/actions/setup-libindy

- name: Setup node v16
uses: actions/setup-node@v2
with:
Expand Down Expand Up @@ -77,6 +76,11 @@ jobs:
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Some packages need indy-sdk for node as part of yarn install
- name: Setup Libindy
uses: ./.github/actions/setup-libindy

- name: Setup node v16
uses: actions/setup-node@v2
with:
Expand Down
119 changes: 119 additions & 0 deletions .github/workflows/release-stable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
name: Continuous Deployment

on:
workflow_dispatch:
inputs:
releaseType:
description: The type of release. Should be one of "major", "minor", "patch"
required: true
default: 'patch'
pull_request:
branches:
- main

# Make sure we're not running multiple release steps at the same time as this can give issues with determining the next npm version to release.
# Ideally we only add this to the 'release' job so it doesn't limit PR runs, but github can't guarantee the job order in that case:
# "When concurrency is specified at the job level, order is not guaranteed for jobs or runs that queue within 5 minutes of each other."
concurrency:
group: aries-javascript-media-sharing${{ github.ref }}-${{ github.repository }}-{{ github.event_name }}
cancel-in-progress: true

jobs:
validate:
runs-on: ubuntu-20.04
name: Validate
steps:
- name: Checkout aries-javascript-media-sharing
uses: actions/checkout@v2

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Some packages need indy-sdk for node as part of yarn install
- name: Setup Libindy
uses: ./.github/actions/setup-libindy

- name: Setup node v16
uses: actions/setup-node@v2
with:
node-version: 16

- name: Install dependencies
run: yarn install

- name: Prettier
run: yarn check-format

- name: Check typescript
run: yarn check-types
release:
runs-on: ubuntu-20.04
name: Release
needs: [validate]
# Only run on workflow dispatch to main branch
if: github.ref == 'refs/heads/main' && github.repository == '2060-io/aries-javascript-media-sharing' && github.event_name == 'workflow_dispatch'
steps:
- name: Checkout aries-javascript-media-sharing
uses: actions/checkout@v2
with:
fetch-depth: 0

- name: git config
run: |
git config user.name "@github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v2
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
# Some packages need indy-sdk for node as part of yarn install
- name: Setup Libindy
uses: ./.github/actions/setup-libindy

- name: Setup node v16
uses: actions/setup-node@v2
with:
node-version: 16

- name: Install dependencies
run: yarn install

# https://github.com/yarnpkg/yarn/issues/6617#issuecomment-436222106
- name: Prepend Node path
run: npm config set scripts-prepend-node-path true

- name: Set Verbose Logging
run: npm config set loglevel verbose --global

- name: Set NPM config
run: |
echo "//registry.npmjs.org/:_authToken=${{secrets.NPM_TOKEN}}" >> .npmrc
echo "registry=https://registry.npmjs.org/" >> .npmrc
echo "always-auth=true" >> .npmrc
- name: Install dependencies
run: yarn install --frozen-lockfile

- name: Build the library
run: yarn build

- name: Release unstable
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: yarn release ${{ github.event.inputs.releaseType }} --ci

0 comments on commit e8a6716

Please sign in to comment.