diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml new file mode 100644 index 0000000..561b499 --- /dev/null +++ b/.github/workflows/publish-npm.yml @@ -0,0 +1,50 @@ +name: Publish to NPM + +on: + release: + types: [published] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Install Node.js, Solana CLI and Anchor + uses: metadaoproject/setup-anchor@v2 + with: + anchor-version: '0.30.0' + solana-cli-version: '1.18.15' + node-version: '21.0.0' + + - name: Build + run: anchor build + + - name: Prepare IDL Files + run: | + mv target/idl ./ + + - name: Determine NPM Tag + id: determine-npm-tag + run: | + VERSION_TAG=${GITHUB_REF#refs/tags/v} + if [[ $VERSION_TAG == *"-"* ]]; then + echo "NPM_TAG=${VERSION_TAG#*-}" >> "$GITHUB_ENV" + else + echo "NPM_TAG=latest" >> "$GITHUB_ENV" + fi + env: + GITHUB_REF: ${{ github.ref }} + + - name: Publish to NPM + run: | + yarn publish --access public --new-version ${GITHUB_REF#refs/tags/v} --tag ${{ + steps.determine-npm-tag.outputs.NPM_TAG }} --no-git-tag-version + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + GITHUB_REF: ${{ github.ref }} diff --git a/package.json b/package.json index 2ff8fda..54c4ebb 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,11 @@ { + "name": "@zetachain/protocol-contracts-solana", + "private": false, + "version": "0.0.0-set-on-publish", + "description": "Package contains IDL files for the Solana Gateway program, enabling cross-chain functionality with ZetaChain", + "files": [ + "idl" + ], "scripts": { "lint:fix": "prettier */*.js \"*/**/*{.js,.ts}\" -w", "lint": "prettier */*.js \"*/**/*{.js,.ts}\" --check" @@ -21,4 +28,4 @@ "ts-mocha": "^10.0.0", "typescript": "^4.3.5" } -} +} \ No newline at end of file