Skip to content

Commit ce35c38

Browse files
authored
Create main.yml
1 parent 08e9501 commit ce35c38

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

.github/workflows/main.yml

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
2+
name: CI
3+
4+
on:
5+
workflow_dispatch:
6+
push:
7+
tags:
8+
- 'v*'
9+
10+
env:
11+
script_name: FloatingWindow
12+
minify_directory: minified
13+
changelog_name: changelog.md
14+
15+
jobs:
16+
minify-script:
17+
name: 'Minify Script'
18+
19+
runs-on: ubuntu-18.04
20+
21+
steps:
22+
- uses: actions/checkout@v2
23+
24+
- name: Auto Minify
25+
uses: nizarmah/[email protected]
26+
27+
- name: Upload Release Sources as an Artifact
28+
uses: actions/[email protected]
29+
with:
30+
name: 'ReleaseSources'
31+
path: |
32+
${{ env.script_name }}.js
33+
${{ env.script_name }}.min.js
34+
retention-days: 365
35+
36+
create-release:
37+
name: 'Create Release'
38+
39+
runs-on: windows-2019
40+
needs: [minify-script]
41+
42+
steps:
43+
- uses: actions/[email protected]
44+
with:
45+
fetch-depth: 0
46+
47+
- name: Download Release Sources Artifact
48+
uses: actions/[email protected]
49+
with:
50+
name: 'ReleaseSources'
51+
52+
- name: Create Changelog From Commit Messages
53+
run: |
54+
$targetTagVersion = ("${{ github.ref }}" -split "/")[-1]
55+
$lastCommitId = ""
56+
$tags = git tag --sort version:refname
57+
foreach($tag in $tags) {
58+
if (-not ($tag -match "^v\d+\.\d+\.\d+$")) {
59+
continue
60+
}
61+
if ($tag -eq "$targetTagVersion") {
62+
break
63+
} else {
64+
$lastCommitId = $tag
65+
}
66+
}
67+
$startCommitId = ""
68+
if ("" -ne $lastCommitId) {
69+
$startCommitId = $lastCommitId
70+
} else {
71+
$startCommitId = git rev-list --max-parents=0 "$targetTagVersion"
72+
}
73+
74+
Write-Host "Collecting commit messages from: '$startCommitId'"
75+
$messages = git log --pretty="%s" "$startCommitId...$targetTagVersion"
76+
Write-Host $messages
77+
78+
Write-Host "Creating markdown from changes..."
79+
"Changes:`n" > ${{ env.changelog_name }}
80+
git log --pretty="%s" "$startCommitId...$targetTagVersion" | Sort-Object -Unique {$_} | ForEach-Object {"- $_"} >> ${{ env.changelog_name }}
81+
Write-Host "Created ${{ env.changelog_name }}"
82+
83+
- name: Create Release
84+
id: create_release
85+
uses: actions/create-release@v1
86+
env:
87+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
88+
with:
89+
tag_name: ${{ github.ref }}
90+
release_name: Release ${{ github.ref }}
91+
body_path: ${{ env.changelog_name }}
92+
draft: true
93+
prerelease: false
94+
95+
- name: Upload script as Release Asset
96+
id: upload-release-asset-script
97+
uses: actions/upload-release-asset@v1
98+
env:
99+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
100+
with:
101+
upload_url: ${{ steps.create_release.outputs.upload_url }}
102+
asset_path: '${{ env.script_name }}.js'
103+
asset_name: '${{ env.script_name }}.js'
104+
asset_content_type: application/zip
105+
106+
- name: Upload minifed script as Release Asset
107+
id: upload-release-asset-script-minified
108+
uses: actions/upload-release-asset@v1
109+
env:
110+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
111+
with:
112+
upload_url: ${{ steps.create_release.outputs.upload_url }}
113+
asset_path: '${{ env.script_name }}.min.js'
114+
asset_name: '${{ env.script_name }}.min.js'
115+
asset_content_type: application/zip

0 commit comments

Comments
 (0)