diff --git a/.github/workflows/release.yml b/.github/workflows/release.yaml similarity index 99% rename from .github/workflows/release.yml rename to .github/workflows/release.yaml index 1c4eac03..19a6dc63 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yaml @@ -3,6 +3,7 @@ name: 🚀 Release on: push: tags: ["v[0-9]+.[0-9]+.[0-9]+*"] + workflow_dispatch: jobs: parse: diff --git a/.github/workflows/tagpr.yaml b/.github/workflows/tagpr.yaml new file mode 100644 index 00000000..58ae64df --- /dev/null +++ b/.github/workflows/tagpr.yaml @@ -0,0 +1,29 @@ +name: 🚀 Tagpr for GitHub Actions +on: + push: + branches: + - main +jobs: + tagpr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + with: + token: ${{ secrets.GITHUB_TOKEN }} + - name: Install just + uses: taiki-e/install-action@just + - uses: Songmu/tagpr@v1 + id: tagpr + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Trigger Release Workflow(only when tagged) + uses: actions/github-script@v6 + if: "steps.tagpr.outputs.tag != ''" + with: + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'release.yaml', + ref: "refs/tags/${{ steps.tagpr.outputs.tag }}", + }) \ No newline at end of file diff --git a/.github/workflows/update_version_config.yaml b/.github/workflows/update_version_config.yaml new file mode 100644 index 00000000..6ddb689a --- /dev/null +++ b/.github/workflows/update_version_config.yaml @@ -0,0 +1,44 @@ +name: 🤖 Automated Update tagpr config + +on: + workflow_dispatch: + inputs: + version: + description: 'Version to release' + required: true +jobs: + config: + runs-on: ubuntu-20.04 + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Update tagpr config + run: | + cat << EOF > .tagpr + [tagpr] + vPrefix = true + releaseBranch = main + versionFile = justfile + command = just version-up ${{ github.event.inputs.version }} + release = false + changelog = true + EOF + - uses: peter-evans/create-pull-request@v5 + with: + title: 'config: Automated Tagpr Update for ${{ github.event.inputs.version }}' + add-paths: | + .tagpr + body: | + + Automated changes by [create-pull-request](https://github.com/peter-evans/create-pull-request) GitHub action + commit-message: | + 🤖 update tagpr config using robot. + branch: tagpr-${{ github.event.inputs.version }} + base: main + signoff: true + delete-branch: true + token: ${{ secrets.GITHUB_TOKEN }} + committer: github-actions[bot] + author: github-actions[bot] diff --git a/.tagpr b/.tagpr new file mode 100644 index 00000000..7d5f3f9e --- /dev/null +++ b/.tagpr @@ -0,0 +1,8 @@ +# Generated by github action. DO NOT EDIT. +[tagpr] + vPrefix = true + releaseBranch = main + versionFile = justfile + command = just version-up 0.3.1 + release = false + changelog = true \ No newline at end of file diff --git a/justfile b/justfile index 321d580a..6eba1dc3 100644 --- a/justfile +++ b/justfile @@ -190,6 +190,8 @@ ci-musl-prepare: ci-prepare exit 1 version-up version: + #!/usr/bin/bash + set -ex git grep -l "^version = .* # MARK: Version" | xargs sed -i 's/version = "[0-9]\.[0-9]\.[0-9]" # MARK: Version/version = "{{version}}" # MARK: Version/g' git grep -l "} # MARK: Version" | grep -v justfile | xargs sed -i 's/version = "[0-9]\.[0-9]\.[0-9]" } # MARK: Version/version = "{{version}}" } # MARK: Version/g' {{ cwd }}/scripts/release_tag.sh {{version}} \ No newline at end of file