-
Notifications
You must be signed in to change notification settings - Fork 0
150 lines (130 loc) · 5.03 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
name: Build Release
on:
workflow_dispatch:
push:
branch: "main"
jobs:
# Validate Repository Configuration
config:
runs-on: ubuntu-latest
outputs:
config_package: ${{ steps.config_package.outputs.configPackage }}
steps:
# Ensure that required repository variable has been created for the Package
- name: Validate Package Config
id: config_package
run: |
echo "configPackage=true" >> $GITHUB_OUTPUT;
# Get Version
GetTargetVersion:
needs: config
runs-on: ubuntu-latest
outputs:
TargetVersion: ${{ steps.version.outputs.value }}
TagExist: ${{ steps.contains_tag.outputs.retval }}
env:
packagePath: .
steps:
# Checkout Local Repository
- name: Checkout
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
# Get the Package version based on the package.json file
- name: Get Version
id: version
uses: zoexx/github-action-json-file-properties@b9f36ce6ee6fe2680cd3c32b2c62e22eade7e590
with:
file_path: "${{ env.packagePath }}/package.json"
prop_path: "version"
# Check Exist
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: rickstaa/action-contains-tag@v1
id: contains_tag
with:
reference: "main"
tag: "${{ steps.version.outputs.value }}"
frail: false
# Build and release the Package
# If the repository is not configured properly, this job will be skipped
build:
needs: GetTargetVersion
runs-on: ubuntu-latest
permissions:
contents: write
env:
packagePath: .
if: always() && (needs.GetTargetVersion.outputs.TagExist == 'false')
steps:
# Checkout Local Repository
- name: Checkout
uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac
#Configure the Environment Variables needed for releasing the Package
- name : Set Environment Variables1
run: |
echo "version=${{ needs.GetTargetVersion.outputs.TargetVersion }}" >> $GITHUB_ENV
echo "RepoName=${GITHUB_REPOSITORY#${GITHUB_REPOSITORY_OWNER}/}" >> $GITHUB_ENV
- name : Set Environment Variables2
run: |
echo "zipFile=${{ env.RepoName }}-${{ env.version }}".zip >> $GITHUB_ENV
echo "unityPackage=${{ env.RepoName }}-${{ env.version }}.unitypackage" >> $GITHUB_ENV
# Zip the Package for release
- name: Create Package Zip
working-directory: "${{ env.packagePath }}"
run: zip -r "${{ github.workspace }}/${{ env.zipFile }}" .
# Build a list of .meta files for future use
- name: Track Package Meta Files
run: find "${{ env.packagePath }}/" -name \*.meta >> metaList
# Make a UnityPackage version of the Package for release
- name: Create UnityPackage
uses: pCYSl5EDgo/create-unitypackage@master
with:
working-folder: "${{ github.workspace }}"
package-path: "${{ env.unityPackage }}"
include-files: metaList
# Make a release tag of the version from the package.json file
- name: Create Tag
id: tag_version
uses: rickstaa/action-create-tag@88dbf7ff6fe2405f8e8f6c6fdfd78829bc631f83
with:
tag: "${{ env.version }}"
# check files
- name: Check if the zipFile exists
run: |
if [ ! -f "${{ github.workspace }}/${{ env.zipFile }}" ]; then
echo "File not found: ${{ github.workspace }}/${{ env.zipFile }}"
else
echo "Found: ${{ github.workspace }}/${{ env.zipFile }}"
fi
- name: Check if the unityPackage exists
run: |
if [ ! -f "${{ github.workspace }}/${{ env.unityPackage }}" ]; then
echo "File not found: ${{ github.workspace }}/${{ env.unityPackage }}"
else
echo "Found: ${{ github.workspace }}/${{ env.unityPackage }}"
fi
- name: Check if the package.json exists
run: |
if [ ! -f "${{ github.workspace }}/${{ env.packagePath }}/package.json" ]; then
echo "File not found: ${{ github.workspace }}/${{ env.packagePath }}/package.json"
else
echo "Found: ${{ github.workspace }}/${{ env.packagePath }}/package.json"
fi
# Publish the Release to GitHub
- name: Make Release
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844
with:
files: |
${{ github.workspace }}/${{ env.zipFile }}
${{ github.workspace }}/${{ env.unityPackage }}
${{ env.packagePath }}/package.json
tag_name: ${{ env.version }}
- name: Update Website
run: |
TOKEN=${{ secrets.MY_PAT }}
curl \
-X POST \
-H "Authorization: token $TOKEN" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/pandrabox/vpm/dispatches \
-d '{"event_type":"on-demand-test","client_payload":{"env": "dev"}}'