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 build - 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"