diff --git a/.github/workflows/push-to-npm.yml b/.github/workflows/push-to-npm.yml new file mode 100644 index 00000000..798e2530 --- /dev/null +++ b/.github/workflows/push-to-npm.yml @@ -0,0 +1,67 @@ +name: Push @workadventure/iframe-api-typings to NPM +on: + release: + types: [created] +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v2 + with: + node-version: '14.x' + registry-url: 'https://registry.npmjs.org' + + - name: Edit tsconfig.json to add declarations + run: "sed -i 's/\"declaration\": false/\"declaration\": true/g' tsconfig.json" + working-directory: "front" + + - name: Replace version number + run: 'sed -i "s#VERSION_PLACEHOLDER#${GITHUB_REF/refs\/tags\//}#g" package.json' + working-directory: "front/packages/iframe-api-typings" + + - name: Debug package.json + run: cat package.json + working-directory: "front/packages/iframe-api-typings" + + - name: Install Protoc + uses: arduino/setup-protoc@v1 + with: + version: '3.x' + + - name: "Install dependencies" + run: yarn install + working-directory: "front" + + - name: "Install messages dependencies" + run: yarn install + working-directory: "messages" + + - name: "Build proto messages" + run: yarn run proto && yarn run copy-to-front + working-directory: "messages" + + - name: "Create index.html" + run: ./templater.sh + working-directory: "front" + + - name: "Build" + run: yarn run build + env: + API_URL: "localhost:8080" + working-directory: "front" + + # We build the front to generate the typings of iframe_api, then we copy those typings in a separate package. + - name: Copy typings to package dir + run: cp front/dist/src/iframe_api.d.ts front/packages/iframe-api-typings/iframe_api.d.ts + + - name: Install dependencies in package + run: yarn install + working-directory: "front/packages/iframe-api-typings" + + - name: Publish package + run: yarn publish + working-directory: "front/packages/iframe-api-typings" + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/front/packages/iframe-api-typings/.gitignore b/front/packages/iframe-api-typings/.gitignore new file mode 100644 index 00000000..f850ebdb --- /dev/null +++ b/front/packages/iframe-api-typings/.gitignore @@ -0,0 +1 @@ +iframe_api.d.ts diff --git a/front/packages/iframe-api-typings/.npmignore b/front/packages/iframe-api-typings/.npmignore new file mode 100644 index 00000000..e69de29b diff --git a/front/packages/iframe-api-typings/README.md b/front/packages/iframe-api-typings/README.md new file mode 100644 index 00000000..c5c16ded --- /dev/null +++ b/front/packages/iframe-api-typings/README.md @@ -0,0 +1,27 @@ +
This package contains Typescript typings for WorkAdventure's map scripting API
+ +