-
Notifications
You must be signed in to change notification settings - Fork 59
77 lines (65 loc) · 2.48 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: Releases
on:
workflow_dispatch: # Allows you to manually trigger the workflow
push:
branches:
- main
paths-ignore:
- "data/**"
concurrency:
group: "main-branch"
jobs:
release:
if: github.repository == 'EddieHubCommunity/BioDrop'
runs-on: ubuntu-latest
steps:
# Check out the repository with all commits
- uses: actions/checkout@v4
with:
fetch-depth: 0
# Configure Git with a user name and email
- name: Configure Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "[email protected]"
# Create a temporary, uniquely named branch for the release
- name: Create temporary branch
run: git branch "release-from-${{ github.sha }}" "${{ github.sha }}"
# Switch to the temporary branch
- name: Switch to new branch
run: git checkout release-from-${{ github.sha }}
# Update the version in package.json
- name: Get npm version
id: package-version
run: |
LF_VERSION=$(cat package.json | jq -r '.version')
echo "current-version=$LF_VERSION" >> "$GITHUB_ENV"
# Bump the version number
- name: Bump version number
run: |
npm version patch -m "Release version %s"
git push origin "release-from-${{ github.sha }}"
# Create PR with release info
- name: Create PR with release info
if: github.event_name == 'workflow_dispatch'
id: create-pr
run: gh pr create --base main --head release-from-${{ github.sha }} --title 'Merge new release into main' --body 'Created by GitHub Action'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Merge PR with release info
- name: Merge PR with release info
if: github.event_name == 'workflow_dispatch'
id: merge-pr
run: gh pr merge --admin --merge --subject 'Merge release info'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Create a GitHub release with the last commit
- name: Create GitHub release
if: github.event_name == 'workflow_dispatch'
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.package-version.outputs.current-version }}
name: Release ${{ steps.package-version.outputs.current-version }}
body: |
Automated release for version ${{ steps.package-version.outputs.current-version }}