From 4ac71a8d3ae5958280d5096ceefb8557ea497532 Mon Sep 17 00:00:00 2001 From: madlabman <10616301+madlabman@users.noreply.github.com> Date: Thu, 22 Jun 2023 20:36:10 +0400 Subject: [PATCH] build: upload ABIs to a published release --- .github/workflows/release-abis.yml | 62 ++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 .github/workflows/release-abis.yml diff --git a/.github/workflows/release-abis.yml b/.github/workflows/release-abis.yml new file mode 100644 index 000000000..191cb94ec --- /dev/null +++ b/.github/workflows/release-abis.yml @@ -0,0 +1,62 @@ +--- +name: Upload ABIs to a published release + +on: + release: + types: [published] # stable and pre-releases + +permissions: + contents: write + +jobs: + release-abis: + name: Build ABIs and upload to the release + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + with: + persist-credentials: false + + - name: Setup node.js version + uses: actions/setup-node@v3 + with: + node-version: 16 + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "dir=$(yarn config get cacheFolder)" >> "$GITHUB_OUTPUT" + + - name: Cache yarn cache + id: cache-yarn-cache + uses: actions/cache@v3 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: yarn-${{ hashFiles('**/yarn.lock') }} + + - name: Cache node_modules + id: cache-node-modules + uses: actions/cache@v3 + with: + path: '**/node_modules' + key: node_modules-${{ hashFiles('**/yarn.lock') }} + restore-keys: node_modules-${{ hashFiles('**/yarn.lock') }} + + - name: Install modules + run: yarn + if: | + steps.cache-yarn-cache.outputs.cache-hit != 'true' || + steps.cache-node-modules.outputs.cache-hit != 'true' + + - name: Compile contracts + run: yarn compile + + - name: Make an ABIs archive + run: zip -j abis.zip lib/abi/*.json + + - name: Upload the archive to the release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ github.ref }} # is set to the tag of the release + files: abis.zip