mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-04-27 10:39:25 -04:00
* feat(crypto-nodejs): Download lib binary in postinstall * build(crypto-nodejs): Workflow to prebuild napi bindings * ci(crypto-nodejs): Disable broken target, install without download * ci(apple-ffi): Don't run for drafts * ci(coverage): Don't run for draft PRs * fix(crypto-nodejs): bind to current version for download * fix(crypto-nodejs): Ignore libs and package * ci(crypto-nodejs): Build and upload NPM package * fix(crypto-nodejs): Set proper target list * ci(crypto-nodejs): Remove FreeBSD from build pipeline * ci(crypto-nodejs): Linkers for linux cross compile * ci(crypto-nodejs): Add arm64 build for windows * ci(crypto-nodejs): Proper linkers for arm and musl * ci(crypto-nodejs): Correct apt command for musl * fix(crypto-nodejs): Drop arm64 linux musl support * ci(crypto-nodejs): Manual Workflow trigger process * chore(crypto-nodejs): Get Github to pickup our action * ci(crypto-nodejs): Add i686 Linux built * ci(crypto-nodejs): Configure cliff for nodejs changelogs * ci(crypto-nodejs): Proper gcc for i868 targets * docs(crypto-nodejs): Add supported targets for npm install * ci(crypto-nodejs): Limit building of binaries to tags * style: consol.log -> console.info; Improve docs Co-authored-by: Ivan Enderlin <ivan@mnt.io> * activate for testing * fix broken merge * 0.1.0 * fix(js): put in the proper package name * activate for PR for testing * fix(nodejs): getting ready for publishing * ci(crypto-nodejs): Adding docs and fixing naming for workflows * typo: missed one * fixing package name Co-authored-by: Ivan Enderlin <ivan@mnt.io>
109 lines
4.2 KiB
YAML
109 lines
4.2 KiB
YAML
name: Prepare Crypto-Node.js Release
|
|
#
|
|
# This is a helper workflow to craft a new Node.js release, trigger this via
|
|
# the Github Workflow UI by dispatching it manually. Provide the version, the
|
|
# matrix-sdk-crypto-nodejs npm package should be set to, and a optionally the
|
|
# old version (as used in the git tag) this release should be compared to.
|
|
#
|
|
# This will then:
|
|
# 1. bump the npm version to the one you specified
|
|
# 2. commit that change together with the changelog (if it changed, see below)
|
|
# 3. create the appropriate tag on that commit
|
|
# 4. create the Github draft release, including the changes (if given, see below)
|
|
# 5. push these to a new branch, including tag, triggering the `release-crypto-nodejs` workflow
|
|
# 6. create a PR to merge these back into `main`
|
|
#
|
|
# Additionally, if you provide a tag to comapare this tag to, this will:
|
|
# 1. create a changelog between the two releases, used for the github release
|
|
# 2. update the Changelog.md and include it in the commit
|
|
#
|
|
# The remaining tasks are done by the release-crypto-nodejs workflow.
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: 'New Node.js SemVer version to create'
|
|
required: true
|
|
type: string
|
|
previous_version:
|
|
description: 'Create the changelog by comparing to this old SemVer Version (as used in the tag) '
|
|
type: string
|
|
|
|
env:
|
|
PKG_PATH: "bindings/matrix-sdk-crypto-nodejs"
|
|
TAG_PREFIX: "matrix-sdk-crypto-nodejs-v"
|
|
|
|
jobs:
|
|
prepare-release:
|
|
name: "Package nodejs package"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
# Generate changelog since last tag, if given
|
|
- name: Generate a changelog for upload
|
|
if: inputs.previous_version
|
|
uses: orhun/git-cliff-action@v1
|
|
with:
|
|
config: "${{ env.PKG_PATH }}/cliff.toml"
|
|
args: --strip header "${{env.TAG_PREFIX}}${{ inputs.previous_version }}..HEAD"
|
|
env:
|
|
GIT_CLIFF_TAG: "Changes ${{ inputs.previous_version }} -> ${{ inputs.version }}"
|
|
GIT_CLIFF_OUTPUT: "${{ env.PKG_PATH }}/CHANGES-${{ inputs.version }}.md"
|
|
|
|
# Update changelog since last tag, if given
|
|
- name: Update existing Changelog
|
|
if: inputs.previous_version
|
|
uses: orhun/git-cliff-action@v1
|
|
with:
|
|
config: "${{ env.PKG_PATH }}/cliff.toml"
|
|
args: "${{ inputs.previous_version }}..HEAD"
|
|
env:
|
|
GIT_CLIFF_TAG: "${{ inputs.version }}"
|
|
GIT_CLIFF_PREPEND: "${{ env.PKG_PATH }}/CHANGELOG.md"
|
|
|
|
- name: Set version
|
|
id: package_version
|
|
uses: KageKirin/set-node-package-version@v0
|
|
with:
|
|
version: ${{ inputs.version }}
|
|
|
|
- uses: EndBug/add-and-commit@v9
|
|
with:
|
|
default_author: github_actions
|
|
message: "Tagging Crypto-Node.js for release"
|
|
tag: "${{env.TAG_PREFIX}}${{ inputs.version }}"
|
|
new_banch: "gh-action/release-${{ env.TAG_PREFIX }}${{ inputs.version }}"
|
|
push: true
|
|
add: |
|
|
${{ env.PKG_PATH }}/package.json
|
|
${{ env.PKG_PATH }}/CHANGELOG.md
|
|
|
|
# if we have generated changes
|
|
- name: Update Github Release notes
|
|
if: inputs.previous_version
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: true
|
|
tag_name: ${{ env.TAG_PREFIX }}${{ inputs.version }}
|
|
body_path: "${{ env.PKG_PATH }}/CHANGES-${{ inputs.version }}.md"
|
|
|
|
# no changes, use the default changelog for the body
|
|
- name: Update Github Release notes
|
|
if: !inputs.previous_version
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
draft: true
|
|
tag_name: ${{ env.TAG_PREFIX }}${{ inputs.version }}
|
|
body_path: "${{ env.PKG_PATH }}/CHANGELOG.md"
|
|
|
|
# finally, let's create a PR for all this, too
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v4
|
|
with:
|
|
branch: "gh-action/release-${{ env.TAG_PREFIX }}${{ inputs.version }}"
|
|
title: "Preparing Release ${{ env.TAG_PREFIX }}${{ inputs.version }}"
|
|
body: |
|
|
Automatic Pull-Request to merge release ${{ env.TAG_PREFIX }}${{ inputs.version }} back into main
|