eliminate need to import protocol into contractkit (round 3) #33
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: Publish ABIs and Solidity files to NPM | |
on: | |
push: | |
branches: [main] | |
pull_request: | |
release: | |
types: [released] | |
workflow_dispatch: | |
inputs: | |
npm_version: | |
description: 'NPM version' | |
required: true | |
type: string | |
jobs: | |
publish: | |
runs-on: ['self-hosted', 'monorepo-node18'] | |
permissions: | |
contents: write | |
id-token: write | |
repository-projects: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Akeyless Get Secrets | |
id: get_auth_token | |
uses: docker://us-west1-docker.pkg.dev/devopsre/akeyless-public/akeyless-action:latest | |
with: | |
api-url: https://api.gateway.akeyless.celo-networks-dev.org | |
access-id: p-kf9vjzruht6l | |
static-secrets: '{"/static-secrets/apps-tooling-circle/npm-publish-token":"NPM_TOKEN"}' | |
# Setup .npmrc file to publish to npm | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: '18.x' | |
registry-url: 'https://registry.npmjs.org' | |
scope: '@celo' | |
- name: 'Setup yarn' | |
shell: bash | |
run: | | |
npm install --global yarn | |
source ~/.bashrc | |
- name: 'Install packages' | |
run: yarn | |
- name: 'Build all packages' | |
run: yarn build | |
- name: Check if a release should be published | |
run: yarn --silent is_contract_release >> "$GITHUB_ENV" | |
working-directory: packages/protocol | |
env: | |
GITHUB_TAG: ${{ github.ref_name }} | |
INPUT_VERSION: ${{ inputs.npm_version }} | |
- name: Compile solidity contracts and typescript files | |
run: yarn prepare_contracts_and_abis_publishing | |
working-directory: packages/protocol | |
env: | |
RELEASE_TYPE: ${{ env.RELEASE_TYPE }} | |
RELEASE_VERSION: ${{ env.RELEASE_VERSION }} | |
- if: ${{ env.RELEASE_VERSION != '' }} | |
name: Publish @celo/contracts | |
run: yarn publish contracts --tag latest --version $RELEASE_VERSION --no-git-tag-version | |
working-directory: packages/protocol | |
env: | |
RELEASE_TYPE: ${{ env.RELEASE_TYPE }} | |
RELEASE_VERSION: ${{ env.RELEASE_VERSION }} | |
NPM_TOKEN: ${{ env.NPM_TOKEN }} | |
- if: ${{ env.RELEASE_VERSION != '' }} | |
name: Publish @celo/abis | |
run: yarn publish build/contracts --tag latest --version $RELEASE_VERSION --no-git-tag-version | |
working-directory: packages/protocol | |
env: | |
RELEASE_TYPE: ${{ env.RELEASE_TYPE }} | |
RELEASE_VERSION: ${{ env.RELEASE_VERSION }} | |
NPM_TOKEN: ${{ env.NPM_TOKEN }} |