name: Create Release on: push: tags: - "*" permissions: id-token: write contents: write jobs: create-binaries: uses: ./.github/workflows/create-artifact.yml build: needs: create-binaries runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Node.js uses: actions/setup-node@v3 with: node-version: "lts/*" registry-url: "https://registry.npmjs.org/" env: NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} - name: Setup safe-chain run: | npm i -g @aikidosec/safe-chain safe-chain setup-ci - name: Set version number id: get_version run: | version="${{ github.ref_name }}" echo "tag=$version" >> $GITHUB_OUTPUT - name: Set the version in safe-chain package run: npm --no-git-tag-version version ${{ steps.get_version.outputs.tag }} --workspace=packages/safe-chain - name: Install dependencies run: npm ci - name: Run tests run: npm run test - name: Copy documentation files to package run: | cp README.md packages/safe-chain/ cp LICENSE packages/safe-chain/ cp -r docs packages/safe-chain/ - name: Publish to npm run: | echo "Publishing version ${{ steps.get_version.outputs.tag }} to NPM" npm publish --workspace=packages/safe-chain --access public --provenance - name: Download all binary artifacts uses: actions/download-artifact@v4 with: path: binaries/ pattern: safe-chain-* merge-multiple: false - name: Upload binaries to existing GitHub Release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh release upload ${{ steps.get_version.outputs.tag }} \ binaries/safe-chain-macos-x64/* \ binaries/safe-chain-macos-arm64/* \ binaries/safe-chain-linux-x64/* \ binaries/safe-chain-linux-arm64/* \ binaries/safe-chain-win-x64/* \ binaries/safe-chain-win-arm64/*