diff --git a/.github/workflows/release-module.yml b/.github/workflows/release-module.yml new file mode 100644 index 0000000000..3050baa80f --- /dev/null +++ b/.github/workflows/release-module.yml @@ -0,0 +1,57 @@ +name: Release module +run-name: Release modules + +on: + push: + tags: + - "module/*/v*.*.*" + +permissions: {} + +jobs: + release: + name: Build and release module + runs-on: ubuntu-24.04 + permissions: + contents: write + steps: + - name: Parse tag + env: + TAG: ${{ github.ref_name }} + run: | + MODULE=$(echo "$TAG" | cut -d'/' -f2) + VERSION=$(echo "$TAG" | cut -d'/' -f3) + echo "MODULE=$MODULE" >> "$GITHUB_ENV" + echo "VERSION=$VERSION" >> "$GITHUB_ENV" + echo "TAG=$TAG" >> "$GITHUB_ENV" + echo "ARCHIVE=${MODULE}-${VERSION}.zip" >> "$GITHUB_ENV" + + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + persist-credentials: false + + - uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9 + + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 + with: + cache: "pnpm" + node-version: "lts/*" + + - name: Install deps + run: pnpm install --frozen-lockfile + + - name: Build + run: pnpm --filter "./modules/$MODULE" run prepare + + - name: Create archive + run: zip -r "$ARCHIVE" -j "modules/$MODULE/lib" + + - name: Create GitHub release + env: + GH_TOKEN: ${{ github.token }} + run: | + gh release create "$TAG" \ + --title "$VERSION $MODULE" \ + --draft \ + --latest=false \ + "$ARCHIVE" diff --git a/modules/banner/package.json b/modules/banner/package.json index 6b6dd0d27b..c165405c92 100644 --- a/modules/banner/package.json +++ b/modules/banner/package.json @@ -1,7 +1,7 @@ { "name": "@element-hq/element-web-module-banner", "private": true, - "version": "0.0.0", + "version": "1.0.0", "type": "module", "main": "lib/index.js", "license": "SEE LICENSE IN README.md", diff --git a/modules/restricted-guests/package.json b/modules/restricted-guests/package.json index 4414676a43..ed225d2244 100644 --- a/modules/restricted-guests/package.json +++ b/modules/restricted-guests/package.json @@ -1,7 +1,7 @@ { "name": "@element-hq/element-web-module-restricted-guests", "private": true, - "version": "0.0.0", + "version": "1.0.0", "type": "module", "main": "lib/index.js", "license": "SEE LICENSE IN README.md", diff --git a/modules/widget-lifecycle/package.json b/modules/widget-lifecycle/package.json index 82f9e34e97..8abdc4924a 100644 --- a/modules/widget-lifecycle/package.json +++ b/modules/widget-lifecycle/package.json @@ -1,7 +1,7 @@ { "name": "@element-hq/element-web-module-widget-lifecycle", "private": true, - "version": "0.0.0", + "version": "1.0.0", "type": "module", "main": "lib/index.js", "license": "SEE LICENSE IN README.md", diff --git a/modules/widget-toggles/package.json b/modules/widget-toggles/package.json index 55bc840458..9a50c80b8c 100644 --- a/modules/widget-toggles/package.json +++ b/modules/widget-toggles/package.json @@ -1,7 +1,7 @@ { "name": "@element-hq/element-web-module-widget-toggle", "private": true, - "version": "0.0.0", + "version": "1.0.0", "type": "module", "main": "lib/index.js", "license": "SEE LICENSE IN README.md",