diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d6a7562..f54e1c6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,7 +24,12 @@ on: required: true type: boolean wasm: - description: Publish a wasm version (npmjs) + description: Publish a wasm (bundler) version (npmjs) + default: true + required: true + type: boolean + wasm_web: + description: Publish a wasm (web) version (npmjs) default: true required: true type: boolean @@ -67,10 +72,6 @@ jobs: with: github_token: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} - - name: Publish - run: npm publish --tag ${{ inputs.beta && 'beta' || 'latest' }} - working-directory: dist/bundler - - run: rm $HOME/.npmrc - name: Configure NPM @@ -80,10 +81,63 @@ jobs: run: npm publish --tag ${{ inputs.beta && 'beta' || 'latest' }} working-directory: dist/bundler - - name: Update Artifactory Cache - run: gh workflow run update-artifactory-cache.yml --repo Devolutions/scheduled-tasks --field package_name="slauth" - env: - GH_TOKEN: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} + build-wasm-web: + environment: npm-publish + if: ${{ inputs.wasm_web }} + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Checkout action + uses: actions/checkout@v4 + with: + repository: Devolutions/actions + path: actions + ref: v2 + token: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} + + - name: Setup wasm + run: | + curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh + wasm-pack --version + + - name: Build + run: sh build-web.sh + working-directory: wrappers/wasm + + - name: Upload artifact + uses: actions/upload-artifact@v4.3.6 + with: + name: wasm-web + path: dist/web + + - name: Setup .npmrc config file + uses: ./actions/npmrc-setup + with: + github_token: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} + + - run: rm $HOME/.npmrc + + - name: Configure NPM + run: npm config set "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" + + - name: Publish + run: npm publish --tag ${{ inputs.beta && 'beta' || 'latest' }} + working-directory: dist/web + + update-artifactory-cache: + environment: npm-publish + if: ${{ !failure() && !cancelled() && (inputs.wasm || inputs.wasm_web) }} + runs-on: ubuntu-latest + needs: [build-wasm, build-wasm-web] + + steps: + - name: Update Artifactory Cache + run: gh workflow run update-artifactory-cache.yml --repo Devolutions/scheduled-tasks --field package_name="slauth" + env: + GH_TOKEN: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} build-android: environment: cloudsmith-publish diff --git a/wrappers/wasm/build-web.sh b/wrappers/wasm/build-web.sh new file mode 100755 index 0000000..68b83af --- /dev/null +++ b/wrappers/wasm/build-web.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +# https://stackoverflow.com/a/246128/1775923 +SOURCE=${BASH_SOURCE[0]} +while [ -L "$SOURCE" ]; do + DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + SOURCE=$(readlink "$SOURCE") + [[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE +done +DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) + +wasm-pack build --scope devolutions --out-dir ./dist/web --target web -- --no-default-features --features "webauthn" +sed -i 's/"@devolutions\/slauth"/"@devolutions\/slauth-web"/' ${DIR}/../../dist/web/package.json \ No newline at end of file