-
Notifications
You must be signed in to change notification settings - Fork 0
169 lines (155 loc) · 4.91 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
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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
name: Javascript Wrapper Release
on:
workflow_call:
inputs:
cliTag:
description: 'CLI tag name'
required: false
type: string
default: 2.0.0-nightly
jsTag:
description: 'JS Wrapper tag name'
required: false
type: string
default: nightly
dev:
description: 'Is dev build'
required: false
default: false
type: boolean
branch:
description: 'Branch to run npm version patch on'
required: false
default: npm-version-patch
type: string
workflow_dispatch:
inputs:
cliTag:
description: 'CLI tag name (ignored if not dev build)'
required: false
jsTag:
description: 'Tag name (ignored if not dev build)'
required: false
type: string
dev:
description: 'Is dev build'
required: false
default: false
type: boolean
branch:
description: 'Branch to run npm version patch on'
required: false
default: npm-version-patch
type: string
permissions:
id-token: write
contents: write
packages: write
pull-requests: write
jobs:
delete:
uses: tamarleviCm/checkVersion/.github/workflows/delete-packages-and-releases.yml@main
with:
tag: ${{ inputs.jsTag }}
secrets: inherit
if: inputs.dev == true
release:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
# CHECKOUT PROJECT
- uses: actions/checkout@v4
with:
fetch-depth: 0
# - name: Create or Checkout Branch
# run: |
# git fetch origin
# if git show-ref --verify --quiet refs/heads/${{ inputs.branch }}; then
# git checkout ${{ inputs.branch }}
# git pull
# else
# git checkout -b ${{ inputs.branch }} origin/main
# fi
# GIT CONFIGURATION
- run: |
git config user.name github-actions
git config user.email [email protected]
# SETUP NODE
- uses: actions/[email protected]
with:
node-version: 10
registry-url: https://npm.pkg.github.com/
# GET TAG NAME
- name: Generate Tag name
run: |
if [ ${{ inputs.dev }} == true ]; then
echo "TAG_NAME=$(npm version prerelease --preid=${{ inputs.jsTag }} --no-git-tag-version --allow-same-version)" >> $GITHUB_ENV
else
echo "TAG_NAME=$(npm version patch)" >> $GITHUB_ENV
fi
# DOWNLOAD CLI IF IT IS A DEV VERSION AND A CLI TAG WAS PROVIDED
- name: Download cli with tag ${{ inputs.cliTag }}
if: inputs.dev == true && inputs.cliTag != ''
run: |
# Update binaries
chmod +x ./.github/scripts/update_cli.sh
./.github/scripts/update_cli.sh ${{ inputs.cliTag }}
# RUN NPM INSTALL AND BUILD
- name: NPM ci and build
run: |
npm ci
npm run build
# # PUSH TAGS IF IT IS A RELEASE
# - name: Push tag if release
# if: inputs.dev == false
# run: |
# git pull
# git push --set-upstream origin ${{ inputs.branch }} && git push --tags
- name: Create Pull Request
id: create_pr
uses: peter-evans/[email protected]
with:
token: ${{ secrets.TAMAR_PAT }}
branch: ${{ inputs.branch }}
title: "Automated Changes"
body: "This is an automated PR created by GitHub Actions"
base: main
draft: false
# delete-branch: true
# auto-merge:
# runs-on: ubuntu-latest
# needs: create-pr
# steps:
- name: Wait for PR to be created
id: pr
uses: octokit/[email protected]
with:
route: GET /repos/${{ github.repository }}/pulls?head=${{ github.repository_owner }}:${{ inputs.branch }}
# token: ${{ secrets.GITHUB_TOKEN }}
- name: Merge Pull Request
uses: octokit/[email protected]
with:
route: PUT /repos/${{ github.repository }}/pulls/${{ steps.pr.outputs.data[0].number }}/merge
token: ${{ secrets.TAMAR_PAT }}
merge_method: squash
# # PUBLISH NPM PACKAGE
# - name: Publish npm package
# run: |
# if [ ${{ inputs.dev }} == true ]; then
# npm publish --tag=${{ inputs.jsTag }}
# else
# npm publish --access public
# fi
# env:
# NODE_AUTH_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
# CREATE RELEASE
- name: Create Release
uses: softprops/action-gh-release@v2
with:
name: ${{ env.TAG_NAME }}
tag_name: ${{ env.TAG_NAME }}
generate_release_notes: true
prerelease: ${{ inputs.dev }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Ensure this token is used here as well