name: Push @workadventure/iframe-api-typings to NPM on: release: types: [created] push: 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: 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 ts-proto && yarn run copy-to-front-ts-proto && yarn run json-copy-to-front working-directory: "messages" - name: "Create index.html" run: ./templater.sh working-directory: "front" - name: "Generate i18n files" run: yarn run typesafe-i18n working-directory: "front" - name: "Build" run: yarn run build-typings env: PUSHER_URL: "//localhost:8080" ADMIN_URL: "//localhost:80" 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: Copy typings to package dir (2) run: cp -R front/dist/src/Api front/packages/iframe-api-typings/Api - 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 }} if: ${{ github.event_name == 'release' }}