Skip to content

fix(client): trigger release #81

fix(client): trigger release

fix(client): trigger release #81

name: Continuous Integration
on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened, labeled]
push:
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: credo-ts-${{ github.ref }}-${{ github.repository }}-${{ github.event_name }}
cancel-in-progress: true
jobs:
ci-trigger:
runs-on: ubuntu-20.04
outputs:
triggered: ${{ steps.check.outputs.triggered }}
steps:
- name: Determine if CI should run
id: check
run: |
if [[ "${{ github.event.action }}" == "labeled" && "${{ github.event.label.name }}" == "ci-test" ]]; then
export SHOULD_RUN='true'
elif [[ "${{ github.event.action }}" == "labeled" && "${{ github.event.label.name }}" != "ci-test" ]]; then
export SHOULD_RUN='false'
else
export SHOULD_RUN='true'
fi
echo "SHOULD_RUN: ${SHOULD_RUN}"
echo "::set-output name=triggered::${SHOULD_RUN}"
validate:
runs-on: ubuntu-20.04
name: Validate
needs: [ci-trigger]
if: needs.ci-trigger.outputs.triggered == 'true'
steps:
- name: Checkout credo-ts-indy-vdr-proxy
uses: actions/checkout@v2
- name: Setup NodeJS
uses: ./.github/actions/setup-node
with:
node-version: 18
- name: Install dependencies
run: yarn install
- name: Linting
run: yarn lint
- name: Prettier
run: yarn check-format
- name: Compile
run: yarn check-types
tests:
runs-on: ubuntu-20.04
name: Tests
needs: [validate]
if: needs.ci-trigger.outputs.triggered == 'true'
steps:
- name: Checkout credo-ts-indy-vdr-proxy
uses: actions/checkout@v2
- name: Setup NodeJS
uses: ./.github/actions/setup-node
with:
node-version: 18
- name: Install dependencies
run: yarn install
- name: Run tests
run: yarn test
package-finder:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.repository == '2060-io/credo-ts-indy-vdr-proxy' && github.event_name == 'push'
needs: [tests]
outputs:
packages: ${{ steps.get-packages.outputs.packages }}
steps:
- name: Checkout credo-ts-indy-vdr-proxy
uses: actions/checkout@v2
- name: Setup NodeJS
uses: ./.github/actions/setup-node
with:
node-version: 18
- name: Install dependencies
run: yarn install
- id: get-packages
name: Get all NPM packages
run: yarn ts-node ./scripts/getPackages.ts
release-please:
runs-on: ubuntu-latest
needs: [package-finder]
strategy:
fail-fast: false
matrix:
package: ${{fromJson(needs.package-finder.outputs.packages)}}
steps:
- uses: google-github-actions/release-please-action@v2
id: release-please
with:
path: packages/${{ matrix.package }}
token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
package-name: ${{ matrix.package }}
bump-minor-pre-major: true
bump-patch-for-minor-pre-major: true
monorepo-tags: true
signoff: "github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>"
# Initiate release process if release was created
- name: Checkout credo-ts-indy-vdr-proxy
uses: actions/checkout@v2
if: ${{ steps.release-please.outputs.release_created }}
- name: Setup NodeJS
uses: ./.github/actions/setup-node
with:
node-version: 18
if: ${{ steps.release-please.outputs.release_created }}
- name: Install dependencies
run: yarn install --frozen-lockfile
if: ${{ steps.release-please.outputs.release_created }}
- name: Release to NPM
run: npm publish ./packages/${{ matrix.package }}
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
if: ${{ steps.release-please.outputs.release_created }}