diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d6a7562..deca123 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 @@ -39,14 +44,6 @@ jobs: - 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 @@ -62,17 +59,6 @@ jobs: name: wasm path: dist/bundler - - name: Setup .npmrc config file - uses: ./actions/npmrc-setup - 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 run: npm config set "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" @@ -85,6 +71,42 @@ jobs: 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: 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: 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 + + - name: Update Artifactory Cache + run: gh workflow run update-artifactory-cache.yml --repo Devolutions/scheduled-tasks --field package_name="slauth-web" + env: + GH_TOKEN: ${{ secrets.DEVOLUTIONSBOT_WRITE_TOKEN }} + build-android: environment: cloudsmith-publish if: ${{ inputs.android }} diff --git a/wrappers/wasm/build-web.sh b/wrappers/wasm/build-web.sh new file mode 100755 index 0000000..05495b3 --- /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