Merge branch 'develop' into ed25519
				
					
				
			This commit is contained in:
		
							
								
								
									
										40
									
								
								.github/workflows/release-edit-with-push.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/release-edit-with-push.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
name: "Release Manager: sync changelog with PR"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - release/**
 | 
			
		||||
    paths:
 | 
			
		||||
      - 'CHANGELOG.md'
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: write
 | 
			
		||||
  issues: write
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  edit:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      # headがrelease/かつopenのPRを1つ取得
 | 
			
		||||
      - name: Get PR
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "pr_number=$(gh pr list --limit 1 --head "${{ github.ref_name }}" --json number  --jq '.[] | .number')" >> $GITHUB_OUTPUT
 | 
			
		||||
        id: get_pr
 | 
			
		||||
      - name: Get target version
 | 
			
		||||
        uses: misskey-dev/release-manager-actions/.github/actions/get-target-version@v1
 | 
			
		||||
        id: v
 | 
			
		||||
      # CHANGELOG.mdの内容を取得
 | 
			
		||||
      - name: Get changelog
 | 
			
		||||
        uses: misskey-dev/release-manager-actions/.github/actions/get-changelog@v1
 | 
			
		||||
        with:
 | 
			
		||||
          version: ${{ steps.v.outputs.target_version }}
 | 
			
		||||
        id: changelog
 | 
			
		||||
      # PRのnotesを更新
 | 
			
		||||
      - name: Update PR
 | 
			
		||||
        run: |
 | 
			
		||||
          gh pr edit ${{ steps.get_pr.outputs.pr_number }} --body "${{ steps.changelog.outputs.changelog }}"
 | 
			
		||||
							
								
								
									
										122
									
								
								.github/workflows/release-with-dispatch.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								.github/workflows/release-with-dispatch.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,122 @@
 | 
			
		||||
name: "Release Manager [Dispatch]"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  workflow_dispatch:
 | 
			
		||||
    inputs:
 | 
			
		||||
      ## Specify the type of the next release.
 | 
			
		||||
      #version_increment_type:
 | 
			
		||||
      #  type: choice
 | 
			
		||||
      #  description: 'VERSION INCREMENT TYPE'
 | 
			
		||||
      #  default: 'patch'
 | 
			
		||||
      #  required: false
 | 
			
		||||
      #  options:
 | 
			
		||||
      #    - 'major'
 | 
			
		||||
      #    - 'minor'
 | 
			
		||||
      #    - 'patch'
 | 
			
		||||
      merge:
 | 
			
		||||
        type: boolean
 | 
			
		||||
        description: 'MERGE RELEASE BRANCH TO MAIN'
 | 
			
		||||
        default: false
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: write
 | 
			
		||||
  issues: write
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  get-pr:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      pr_number: ${{ steps.get_pr.outputs.pr_number }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      # headがrelease/かつopenのPRを1つ取得
 | 
			
		||||
      - name: Get PRs
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "pr_number=$(gh pr list --limit 1 --search "head:release/ is:open" --json number  --jq '.[] | .number')" >> $GITHUB_OUTPUT
 | 
			
		||||
        id: get_pr
 | 
			
		||||
 | 
			
		||||
  merge:
 | 
			
		||||
    uses: misskey-dev/release-manager-actions/.github/workflows/merge.yml@v1
 | 
			
		||||
    needs: get-pr
 | 
			
		||||
    if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge == true }}
 | 
			
		||||
    with:
 | 
			
		||||
      pr_number: ${{ needs.get-pr.outputs.pr_number }}
 | 
			
		||||
      package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
 | 
			
		||||
      # Text to prepend to the changelog
 | 
			
		||||
      # The first line must be `## Unreleased`
 | 
			
		||||
      changes_template: |
 | 
			
		||||
        ## Unreleased
 | 
			
		||||
 | 
			
		||||
        ### General
 | 
			
		||||
        -
 | 
			
		||||
 | 
			
		||||
        ### Client
 | 
			
		||||
        -
 | 
			
		||||
 | 
			
		||||
        ### Server
 | 
			
		||||
        -
 | 
			
		||||
 | 
			
		||||
      use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
 | 
			
		||||
      RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
 | 
			
		||||
      RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
 | 
			
		||||
      RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}
 | 
			
		||||
 | 
			
		||||
  create-prerelease:
 | 
			
		||||
    uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
 | 
			
		||||
    needs: get-pr
 | 
			
		||||
    if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge != true  }}
 | 
			
		||||
    with:
 | 
			
		||||
      pr_number: ${{ needs.get-pr.outputs.pr_number }}
 | 
			
		||||
      package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
 | 
			
		||||
      use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
 | 
			
		||||
      RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
 | 
			
		||||
 | 
			
		||||
  create-target:
 | 
			
		||||
    uses: misskey-dev/release-manager-actions/.github/workflows/create-target.yml@v1
 | 
			
		||||
    needs: get-pr
 | 
			
		||||
    if: ${{ needs.get-pr.outputs.pr_number == '' }}
 | 
			
		||||
    with:
 | 
			
		||||
      # The script for version increment.
 | 
			
		||||
      # process.env.CURRENT_VERSION: The current version.
 | 
			
		||||
      #
 | 
			
		||||
      # Misskey calender versioning (yyyy.MM.patch) example
 | 
			
		||||
      version_increment_script: |
 | 
			
		||||
        const now = new Date();
 | 
			
		||||
        const year = now.toLocaleDateString('en-US', { year: 'numeric', timeZone: 'Asia/Tokyo' });
 | 
			
		||||
        const month = now.toLocaleDateString('en-US', { month: 'numeric', timeZone: 'Asia/Tokyo' });
 | 
			
		||||
        const [major, minor, _patch] = process.env.CURRENT_VERSION.split('.');
 | 
			
		||||
        const patch = Number(_patch.split('-')[0]);
 | 
			
		||||
        if (Number.isNaN(patch)) {
 | 
			
		||||
          console.error('Invalid patch version', year, month, process.env.CURRENT_VERSION, major, minor, _patch);
 | 
			
		||||
          throw new Error('Invalid patch version');
 | 
			
		||||
        }
 | 
			
		||||
        if (year !== major || month !== minor) {
 | 
			
		||||
          return `${year}.${month}.0`;
 | 
			
		||||
        } else {
 | 
			
		||||
          return `${major}.${minor}.${patch + 1}`;
 | 
			
		||||
        }
 | 
			
		||||
      ##Semver example
 | 
			
		||||
      #version_increment_script: |
 | 
			
		||||
      #  const [major, minor, patch] = process.env.CURRENT_VERSION.split('.');
 | 
			
		||||
      #  if ("${{ inputs.version_increment_type }}" === "major") {
 | 
			
		||||
      #    return `${Number(major) + 1}.0.0`;
 | 
			
		||||
      #  } else if ("${{ inputs.version_increment_type }}" === "minor") {
 | 
			
		||||
      #    return `${major}.${Number(minor) + 1}.0`;
 | 
			
		||||
      #  } else {
 | 
			
		||||
      #    return `${major}.${minor}.${Number(patch) + 1}`;
 | 
			
		||||
      #  }
 | 
			
		||||
      package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
 | 
			
		||||
      use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
 | 
			
		||||
      RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
 | 
			
		||||
      RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
 | 
			
		||||
      RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}
 | 
			
		||||
							
								
								
									
										38
									
								
								.github/workflows/release-with-ready.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								.github/workflows/release-with-ready.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
name: "Release Manager: release RC when ready for review"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  pull_request:
 | 
			
		||||
    types: [ready_for_review]
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
permissions:
 | 
			
		||||
  contents: write
 | 
			
		||||
  issues: write
 | 
			
		||||
  pull-requests: write
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  check:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    outputs:
 | 
			
		||||
      ref: ${{ steps.get_pr.outputs.ref }}
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v4
 | 
			
		||||
      # PR情報を取得
 | 
			
		||||
      - name: Get PR
 | 
			
		||||
        run: |
 | 
			
		||||
          pr_json=$(gh pr view ${{ github.event.pull_request.number }} --json isDraft,headRefName)
 | 
			
		||||
          echo "ref=$(echo $pr_json | jq -r '.headRefName')" >> $GITHUB_OUTPUT
 | 
			
		||||
        id: get_pr
 | 
			
		||||
  release:
 | 
			
		||||
    uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
 | 
			
		||||
    needs: check
 | 
			
		||||
    if: startsWith(needs.check.outputs.ref, 'release/')
 | 
			
		||||
    with:
 | 
			
		||||
      pr_number: ${{ github.event.pull_request.number }}
 | 
			
		||||
      package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
 | 
			
		||||
      use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
 | 
			
		||||
    secrets:
 | 
			
		||||
      RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
 | 
			
		||||
      RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
 | 
			
		||||
@@ -1,5 +1,4 @@
 | 
			
		||||
<!--
 | 
			
		||||
## 202x.x.x (unreleased)
 | 
			
		||||
## Unreleased
 | 
			
		||||
 | 
			
		||||
### General
 | 
			
		||||
-
 | 
			
		||||
@@ -10,8 +9,6 @@
 | 
			
		||||
### Server
 | 
			
		||||
-
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
 | 
			
		||||
## 2024.3.1
 | 
			
		||||
 | 
			
		||||
### General
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user