Skip to content

Commit cd9757b

Browse files
authored
chore: Automate release process with melos-action (#1230)
* chore: setup release-please * test * chore: add extra files * chore: set correct bootstrap-sha value * chore: set bootstrap-sha * chore: use last-release-sha * chore: use last-release-sha * fix sha * chore: proper setup linked versions * chore: remove condition: * remove flutter version * chore: setup release automation using melos action * chore: test release workflow * remove specific version channels * chore: use workflow dispatch only * fix typo * revert melos.yaml * chore: enable GitHub Release creation in workflow Uncomment GitHub Release creation step and update body.
1 parent c8a8453 commit cd9757b

File tree

3 files changed

+117
-0
lines changed

3 files changed

+117
-0
lines changed
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Prepare Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
prerelease:
7+
description: 'Version as prerelease'
8+
required: false
9+
default: false
10+
type: boolean
11+
graduate:
12+
description: 'Graduate prereleases to stable'
13+
required: false
14+
default: false
15+
type: boolean
16+
17+
permissions:
18+
contents: write
19+
pull-requests: write
20+
21+
jobs:
22+
prepare-release:
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@v4
27+
with:
28+
fetch-depth: 0
29+
token: ${{ secrets.GITHUB_TOKEN }}
30+
31+
- name: Setup Flutter
32+
uses: subosito/flutter-action@v2
33+
34+
- name: Setup Melos
35+
uses: bluefireteam/melos-action@v3
36+
with:
37+
run-versioning: ${{ inputs.prerelease == false }}
38+
run-versioning-prerelease: ${{ inputs.prerelease == true }}
39+
run-versioning-graduate: ${{ inputs.graduate == true }}
40+
publish-dry-run: true
41+
create-pr: true
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Publish Packages
2+
3+
on:
4+
workflow_dispatch:
5+
6+
permissions:
7+
contents: write
8+
id-token: write
9+
10+
jobs:
11+
publish-packages:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
17+
- name: Setup Flutter
18+
uses: subosito/flutter-action@v2
19+
20+
- name: Publish to pub.dev
21+
uses: bluefireteam/melos-action@v3
22+
with:
23+
publish: true
24+
25+
- name: Create GitHub Release
26+
uses: softprops/action-gh-release@v1
27+
with:
28+
tag_name: ${{ github.ref_name }}
29+
name: Release ${{ github.ref_name }}
30+
body: |
31+
## Package Release
32+
33+
Released package: ${{ github.ref_name }}
34+
35+
See the package CHANGELOG for detailed changes.
36+
37+
---
38+
*This release was created automatically by the Publish Packages workflow.*
39+
draft: false
40+
prerelease: false
41+
env:
42+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/release-tag.yml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Create Release Tags
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
actions: write
11+
12+
jobs:
13+
create-tags:
14+
if: ${{ contains(github.event.head_commit.message, 'chore(release):') }}
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Setup Flutter
23+
uses: subosito/flutter-action@v2
24+
25+
- name: Setup Melos
26+
uses: bluefireteam/melos-action@v3
27+
with:
28+
tag: true
29+
- run: |
30+
melos exec -c 1 --no-published --no-private --order-dependents -- \
31+
gh workflow run release-publish.yml \
32+
--ref \$MELOS_PACKAGE_NAME-v\$MELOS_PACKAGE_VERSION
33+
env:
34+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)