diff --git a/.github/workflows/publish-test.yml b/.github/workflows/publish-test.yml new file mode 100644 index 000000000..fa25f26b5 --- /dev/null +++ b/.github/workflows/publish-test.yml @@ -0,0 +1,120 @@ +name: "SDK publish on release TEST" + +on: + workflow_run: + workflows: ["testing-test"] + branches: [main] + types: + - completed + push: + branches: [devops/update-cicd-pipeline] + +jobs: + build: + permissions: write-all + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16 + registry-url: https://registry.npmjs.org/ + + - name: Setup Python + uses: actions/setup-python@v4 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + + - name: generate code and namespace + shell: bash + run: | + cd web3rpc/codegen && gradle wrapper && gradle wrapper clean :deployJar && cd - &&\ + cd web3rpc/rpc-specs && npm install && bash -x generate-namespace.sh && cd + + - name: Verify Changed files + uses: tj-actions/changed-files@v39 + id: verify-changed-files + with: + files_yaml: | + ethers-ext: + - "ethers-ext/package.json" + web3js-ext: + - "web3js-ext/package.json" + web3j-ext: + - "web3j-ext/web3j-ext/build.gradle" + web3py-ext: + - "web3py-ext/setup.py" + web3rpc: + - "web3rpc/rpc-specs/**" + + - name: generate web3py-ext sdk + if: steps.verify-changed-files.outputs.web3py-ext_any_changed == 'true' + shell: bash + run: | + cd web3py-ext &&\ + python -m pip install build wheel twine &&\ + ls -ls &&\ + python setup.py bdist_wheel &&\ + cd - + + - name: Publish web3py-ext sdk + if: steps.verify-changed-files.outputs.web3py-ext_any_changed == 'true' + shell: bash + run: | + echo "OK" + + - name: Publish web3j-ext + if: steps.verify-changed-files.outputs.web3j-ext_any_changed == 'true' + shell: bash + run: | + echo "OK" + + - name: generate ethers-ext sdk + if: steps.verify-changed-files.outputs.ethers-ext_any_changed == 'true' + shell: bash + run: | + cd ethers-ext && npm install && npm run build && cd - + + - name: publish ethers-ext sdk + if: steps.verify-changed-files.outputs.ethers-ext_any_changed == 'true' + shell: bash + run: | + echo "OK" + + + - name: generate web3rpc-javascript sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + shell: bash + run: | + cd web3rpc/sdk/client/javascript && bash -x javascript-generate.sh && cd - + + - name: publish web3rpc-javascript sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + shell: bash + run: | + echo "OK" + + + - name: generate web3rpc-java sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + shell: bash + run: | + cd web3rpc/sdk/client/java && bash -x java-generate.sh && cd - + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + + - name: Publish web3rpc-java sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + shell: bash + run: | + echo "OK" \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 767a0b004..f8ec2a15c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,4 @@ -name: SDK publish on release +name: "SDK publish on release" on: workflow_run: @@ -34,9 +34,32 @@ jobs: shell: bash run: | cd web3rpc/codegen && gradle wrapper && gradle wrapper clean :deployJar && cd - &&\ - cd web3rpc/rpc-specs && npm install && bash -x generate-namespace.sh && cd - + cd web3rpc/rpc-specs && npm install && bash -x generate-namespace.sh && cd - - name: generate python sdk + - name: Verify Changed files + uses: tj-actions/changed-files@v39 + id: verify-changed-files + with: + files_yaml: | + ethers-ext: + - "ethers-ext/package.json" + web3js-ext: + - "web3js-ext/package.json" + web3j-ext: + - "web3j-ext/web3j-ext/build.gradle" + web3py-ext: + - "web3py-ext/setup.py" + web3rpc: + - "web3rpc/rpc-specs/**" + + - name: generate web3rpc-python + if: steps.verify-changed-files.outputs.web3py-ext_any_changed == 'true' + shell: bash + run: | + cd web3rpc/sdk/client/python && bash -x python-generate.sh && cd - + + - name: generate web3py-ext sdk + if: steps.verify-changed-files.outputs.web3py-ext_any_changed == 'true' shell: bash run: | cd web3py-ext &&\ @@ -45,36 +68,16 @@ jobs: python setup.py bdist_wheel &&\ cd - - - name: Publish distribution 📦 to PyPI + - name: Publish web3py-ext sdk + if: steps.verify-changed-files.outputs.web3py-ext_any_changed == 'true' uses: pypa/gh-action-pypi-publish@release/v1 continue-on-error: true with: password: ${{ secrets.PYPI_API_TOKEN }} packages-dir: web3py-ext/dist - - name: generate java sdk - shell: bash - run: | - cd web3rpc/sdk/client/java && bash -x java-generate.sh && cd - - env: - MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} - ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} - ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} - - - name: Publish web3rpc-java package - uses: gradle/gradle-build-action@v2 - with: - arguments: publish - build-root-directory: web3rpc/sdk/client/java/openapi - gradle-version: release-candidate - env: - MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} - MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} - ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} - ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} - - name: Publish web3j-ext + if: steps.verify-changed-files.outputs.web3j-ext_any_changed == 'true' uses: gradle/gradle-build-action@v2 with: arguments: publish @@ -87,25 +90,53 @@ jobs: ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} - name: generate ethers-ext sdk + if: steps.verify-changed-files.outputs.ethers-ext_any_changed == 'true' shell: bash run: | cd ethers-ext && npm install && npm run build && cd - - name: publish ethers-ext sdk + if: steps.verify-changed-files.outputs.ethers-ext_any_changed == 'true' env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | cd ethers-ext && npx pnpm --filter "@klaytn/*" -r publish --publish-branch main --no-git-check --access=public && cd - - - name: generate web3rpc javascript sdk + + - name: generate web3rpc-javascript sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' shell: bash run: | cd web3rpc/sdk/client/javascript && bash -x javascript-generate.sh && cd - - - name: publish web3rpc javascript sdk + - name: publish web3rpc-javascript sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} run: | cd web3rpc/sdk/client/javascript/openapi && npx pnpm --filter "@klaytn/*" -r publish --publish-branch main --no-git-check --access=public && cd - + - name: generate web3rpc-java sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + shell: bash + run: | + cd web3rpc/sdk/client/java && bash -x java-generate.sh && cd - + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + + - name: Publish web3rpc-java sdk + if: steps.verify-changed-files.outputs.web3rpc_any_changed == 'true' + uses: gradle/gradle-build-action@v2 + with: + arguments: publish + build-root-directory: web3rpc/sdk/client/java/openapi + gradle-version: release-candidate + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} \ No newline at end of file diff --git a/.github/workflows/publish.yml.bak b/.github/workflows/publish.yml.bak new file mode 100644 index 000000000..8ec68b8e7 --- /dev/null +++ b/.github/workflows/publish.yml.bak @@ -0,0 +1,111 @@ +name: "SDK publish on release" + +on: + workflow_run: + workflows: ["testing"] + branches: [main] + types: + - completed + +jobs: + build: + permissions: write-all + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16 + registry-url: https://registry.npmjs.org/ + + - name: Setup Python + uses: actions/setup-python@v4 + + - name: Setup Java + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + + - name: generate code and namespace + shell: bash + run: | + cd web3rpc/codegen && gradle wrapper && gradle wrapper clean :deployJar && cd - &&\ + cd web3rpc/rpc-specs && npm install && bash -x generate-namespace.sh && cd - + + - name: generate python sdk + shell: bash + run: | + cd web3py-ext &&\ + python -m pip install build wheel twine &&\ + ls -ls &&\ + python setup.py bdist_wheel &&\ + cd - + + - name: Publish distribution 📦 to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + continue-on-error: true + with: + password: ${{ secrets.PYPI_API_TOKEN }} + packages-dir: web3py-ext/dist + + - name: generate java sdk + shell: bash + run: | + cd web3rpc/sdk/client/java && bash -x java-generate.sh && cd - + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + + - name: Publish web3rpc-java package + uses: gradle/gradle-build-action@v2 + with: + arguments: publish + build-root-directory: web3rpc/sdk/client/java/openapi + gradle-version: release-candidate + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + + - name: Publish web3j-ext + uses: gradle/gradle-build-action@v2 + with: + arguments: publish + build-root-directory: web3j-ext/web3j-ext + gradle-version: release-candidate + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGPASSWORD }} + ORG_GRADLE_PROJECT_SIGNINGKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGKEY }} + + - name: generate ethers-ext sdk + shell: bash + run: | + cd ethers-ext && npm install && npm run build && cd - + + - name: publish ethers-ext sdk + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + cd ethers-ext && npx pnpm --filter "@klaytn/*" -r publish --publish-branch main --no-git-check --access=public && cd - + + - name: generate web3rpc javascript sdk + shell: bash + run: | + cd web3rpc/sdk/client/javascript && bash -x javascript-generate.sh && cd - + + - name: publish web3rpc javascript sdk + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: | + cd web3rpc/sdk/client/javascript/openapi && npx pnpm --filter "@klaytn/*" -r publish --publish-branch main --no-git-check --access=public && cd - + + diff --git a/web3rpc/sdk/client/python/.openapi-generator-ignore b/web3rpc/sdk/client/python/.openapi-generator-ignore new file mode 100644 index 000000000..e69de29bb