name: Release Process on: workflow_dispatch: inputs: mode: description: What type of release required: true default: rc type: choice options: - rc - final docs: description: Publish docs required: true type: boolean default: true npm: description: Publish to npm required: true type: boolean default: true concurrency: ${{ github.workflow }} permissions: {} # No permissions required jobs: release: uses: matrix-org/matrix-js-sdk/.github/workflows/release-make.yml@develop # zizmor: ignore[unpinned-uses,secrets-inherit] permissions: contents: write issues: write pull-requests: read id-token: write secrets: inherit with: final: ${{ inputs.mode == 'final' }} npm: ${{ inputs.npm }} bump-downstreams: name: Update npm dependency in downstream projects needs: release runs-on: ubuntu-24.04 strategy: matrix: include: - repo: element-hq/element-web path: apps/web steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: repository: ${{ matrix.repo }} ref: staging token: ${{ secrets.ELEMENT_BOT_TOKEN }} persist-credentials: true - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: cache: "pnpm" node-version: "lts/*" - name: Bump dependency env: DEPENDENCY: ${{ needs.release.outputs.npm-id }} DIR: ${{ matrix.path }} run: | git config --global user.email "releases@riot.im" git config --global user.name "RiotRobot" pnpm add -C "$DIR" "$DEPENDENCY" --save-exact git add "$DIR"/package.json pnpm-lock.yaml git commit -am"Upgrade dependency to $DEPENDENCY" git push origin staging docs: name: Publish Documentation needs: release if: inputs.docs runs-on: ubuntu-24.04 steps: - name: 🧮 Checkout code uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 with: persist-credentials: false - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5 - name: 🔧 pnpm cache uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: cache: "pnpm" node-version-file: package.json - name: 🔨 Install dependencies run: "pnpm install --frozen-lockfile" - name: 📖 Generate docs run: pnpm gendoc - name: Upload artifact uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5 with: path: _docs docs-deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-24.04 needs: docs # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5