Skip to content

PR automation types rollup solochain #222

PR automation types rollup solochain

PR automation types rollup solochain #222

name: PR automation types rollup solochain
on:
workflow_dispatch:
inputs:
parachainDocker:
description: "Name of the parachain docker reference"
type: string
required: false
default: "mangatasolutions/rollup-node:a5060642ee6f68c18b258f53593639b8a343e4b6"
branch:
description: "Branch where to run workflow"
type: string
required: false
default: ""
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
id-token: write
deployments: write
checks: write
env:
INPUTS_BRANCH: ${{ github.event.inputs.branch || github.ref_name }}
jobs:
release-type-definitions:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.inputs.branch }}
- uses: nrwl/nx-set-shas@v4
- uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- run: npm ci
- run: npx nx run gasp-type-definitions:lint
- name: NPM version bump type definitions
working-directory: packages/type-definitions
run: |
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm version prerelease --preid="$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')"
- name: git add and commit new version
run: |
git config user.name mangatafinance
git config user.email [email protected]
git add .
git commit -m "chore: updated type definitions to new prerelease version"
git push
- name: Build type definitions
run: npx nx run gasp-type-definitions:build
- name: Publish type definitions to NPM
working-directory: dist/packages/type-definitions
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm publish --tag "$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')" --access public
release-types:
runs-on: ubuntu-latest
needs: [release-type-definitions]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.ref }}
- uses: nrwl/nx-set-shas@v4
- name: Clone mangata node repository
uses: actions/checkout@v4
with:
repository: mangata-finance/mangata-node
path: mangata-repo
ref: ${{ env.INPUTS_BRANCH }}
- name: Setup Node version and cache dependencies
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- name: Install WASM toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: nightly
targets: wasm32-unknown-unknown
- name: Install websocat
run: cargo install websocat
- name: Run the Node
working-directory: mangata-repo
env:
NODE_IMAGE: ${{ github.event.inputs.parachainDocker || 'mangatasolutions/rollup-node:53c527a67582de8b7099d76d86c44c200e053f2b' }}
run: |
echo "Starting nodes with image: ${NODE_IMAGE}"
docker compose up -d
docker ps
- name: Sleep for 1 minutes
run: sleep 60s
- run: npm ci
- run: npx nx run gasp-types:generate-metadata-solochain
- run: npx nx run gasp-types:build-types
- run: npx nx run gasp-types:lint
- name: NPM version bump
working-directory: packages/types
run: |
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm version prerelease --preid="$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')"
- name: Remove Cloned Repository
run: rm -rf mangata-repo
- name: git add and commit new version
run: |
git config user.name mangatafinance
git config user.email [email protected]
git add .
git commit -m "chore: updated to new prerelease version"
git push origin ${{ env.INPUTS_BRANCH }}
- name: Build types
run: npx nx run gasp-types:build
- name: Publish to NPM
working-directory: dist/packages/types
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm publish --tag "$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')" --access public
release-sdk:
runs-on: ubuntu-latest
needs: [release-type-definitions, release-types]
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- uses: nrwl/nx-set-shas@v4
- name: Setup Node version and cache dependencies
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- name: Type definitions version for branch
run: |
branchTypeDefinitionsVersion=$(npm show gasp-type-definitions dist-tags."$(echo "${{ env.INPUTS_BRANCH }}" | sed -E 's@[/\.]@-@g; s@_@-@g')")
echo "BRANCH_TYPE_DEFINITIONS_VERSION=$branchTypeDefinitionsVersion" >> $GITHUB_ENV
- name: Types version for branch
run: |
branchTypesVersion=$(npm show gasp-types dist-tags."$(echo "${{ env.INPUTS_BRANCH }}" | sed -E 's@[/\.]@-@g; s@_@-@g')")
echo "BRANCH_TYPES_VERSION=$branchTypesVersion" >> $GITHUB_ENV
- name: Update types dependency version
working-directory: packages/sdk
run: |
sed -i "s/\"gasp-types\": \".*\"/\"gasp-types\": \"${{env.BRANCH_TYPES_VERSION}}\"/" package.json
- name: Update type definitions dependency version
working-directory: packages/sdk
run: |
sed -i "s/\"gasp-type-definitions\": \".*\"/\"gasp-type-definitions\": \"${{env.BRANCH_TYPE_DEFINITIONS_VERSION}}\"/" package.json
- run: npm i
- run: npx nx run gasp-sdk:lint
- name: NPM version bump
working-directory: packages/sdk
run: |
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm version prerelease --preid="$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')"
- name: git add and commit new version
run: |
git config user.name mangatafinance
git config user.email [email protected]
git add .
git commit -m "chore: updated sdk to new prerelease version"
git push
- name: Build sdk
run: npx nx run gasp-sdk:build
- name: Publish to NPM
working-directory: dist/packages/sdk
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
echo "//registry.npmjs.org/:_authToken=\${NPM_TOKEN}" > .npmrc
# Branch name sanitization added to avoid issues with npm version command
# Example `ci/new-branch-1.0.0` -> `ci-new-branch-1-0-0`
npm publish --tag "$(echo "${INPUTS_BRANCH}" | sed -E 's@[/\.]@-@g; s@_@-@g')" --access public
show-versions:
runs-on: ubuntu-latest
needs: [release-sdk, release-type-definitions, release-types]
outputs:
type-definitions-version: ${{ steps.show-versions.outputs.type-definitions-version }}
types-version: ${{ steps.show-versions.outputs.types-version }}
sdk-version: ${{ steps.show-versions.outputs.sdk-version }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref }}
- name: Setup Node version and cache dependencies
uses: actions/setup-node@v4
with:
node-version: "18"
cache: "npm"
- name: Show released versions
id: show-versions
run: |
echo "Version of gasp-type-definitions:"
TYPE_DEF_VERSION=$(npm show gasp-type-definitions dist-tags."$(echo "${{ env.INPUTS_BRANCH }}" | sed -E 's@[/\.]@-@g; s@_@-@g')")
echo $TYPE_DEF_VERSION
echo "type-definitions-version=$TYPE_DEF_VERSION" >> $GITHUB_OUTPUT
echo "Version of gasp-types:"
TYPES_VERSION=$(npm show gasp-types dist-tags."$(echo "${{ env.INPUTS_BRANCH }}" | sed -E 's@[/\.]@-@g; s@_@-@g')")
echo $TYPES_VERSION
echo "types-version=$TYPES_VERSION" >> $GITHUB_OUTPUT
echo "Version of gasp-sdk:"
SDK_VERSION=$(npm show gasp-sdk dist-tags."$(echo "${{ env.INPUTS_BRANCH }}" | sed -E 's@[/\.]@-@g; s@_@-@g')")
echo $SDK_VERSION
echo "sdk-version=$SDK_VERSION" >> $GITHUB_OUTPUT
echo "## Released Versions" >> $GITHUB_STEP_SUMMARY
echo "- gasp-type-definitions: $TYPE_DEF_VERSION" >> $GITHUB_STEP_SUMMARY
echo "- gasp-types: $TYPES_VERSION" >> $GITHUB_STEP_SUMMARY
echo "- gasp-sdk: $SDK_VERSION" >> $GITHUB_STEP_SUMMARY