-
Notifications
You must be signed in to change notification settings - Fork 1
136 lines (105 loc) · 3.94 KB
/
github-release.yml
File metadata and controls
136 lines (105 loc) · 3.94 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: Publish package to Github
on:
workflow_dispatch:
jobs:
update-release-branch:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: "npm"
node-version: "21.7.3"
- name: Update release branch
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
# Check out or create the 'release' branch
git checkout -B release
# Merge changes from 'main' into 'release'
git merge main --no-edit
git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git
# Push the updated release branch
git push origin release
run-semantic-release:
needs: update-release-branch
runs-on: ubuntu-latest
steps:
- name: Checkout the release branch
uses: actions/checkout@v3
with:
fetch-depth: 0
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@v3
with:
cache: "npm"
node-version: "21.7.3"
- name: Force branch to release
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git
git pull
echo "Current branch:"
git branch --show-current
git checkout release
echo "Current branch:"
git branch --show-current
- name: Show current branches
run: git branch -a
- name: Show current remotes
run: git remote -v
- name: Reconfigure git to use HTTP authentication
run: git config --global url."https://${{ secrets.INST_TOKEN }}@github.com/".insteadOf ssh://git@github.com/
- name: Install dependencies
run: npm ci
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
- name: Run build
run: npm run build
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
- name: Create version
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
run: npm version patch
- name: Run semantic-release
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}
NPM_TOKEN: ${{ secrets.INST_TOKEN }}
run: npm publish
- name: Commit and push changes
run: |
git add -A
git commit -m "chore(release): update release branch [skip ci]" || echo "No changes to commit"
git push origin release || echo "No changes to push"
create-pr:
needs: run-semantic-release
runs-on: ubuntu-latest
steps:
- name: Checkout the release branch
uses: actions/checkout@v3
with:
ref: main
fetch-depth: 0
persist-credentials: false
- name: Set email and name for git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git remote set-url origin https://x-access-token:${{ secrets.INST_TOKEN }}@github.com/contentstack/live-preview-sdk.git
git pull
- name: Create pull request
run: gh pr create -B main -H release --title 'Merge release into main [skip ci]' --body 'This PR syncs the changes from the release branch back into the main branch.'
env:
GITHUB_TOKEN: ${{ secrets.INST_TOKEN }}