-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
348 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
name: Build Dev Windows | ||
on: | ||
push: | ||
branches: | ||
- canary | ||
pull_request: | ||
branches: | ||
- canary | ||
|
||
env: | ||
go-version: '^1.16.4' | ||
go-stable: 'true' | ||
artifact-retention-days: 5 | ||
|
||
jobs: | ||
build-and-upload: | ||
name: Build & Upload Dev Windows | ||
runs-on: windows-latest | ||
if: ${{ !contains(github.event.head_commit.message, '[Skip CI]') }} | ||
steps: | ||
# 拉取项目代码 | ||
- name: Checkout 🔀 | ||
uses: actions/checkout@v2 | ||
with: | ||
persist-credentials: false | ||
fetch-depth: 0 | ||
|
||
# 获取Git信息 | ||
- name: Get Git Info 💡 | ||
shell: pwsh | ||
run: | | ||
$VERSION_REGEXP='^v?\d+\.\d+\.\d+(\.\d+)?-pre$' | ||
echo "VERSION_REGEXP=$VERSION_REGEXP" >> $env:GITHUB_ENV | ||
$GIT_BRANCH=$env:GITHUB_REF -replace 'refs/heads/', '' | ||
echo "GIT_BRANCH=$GIT_BRANCH" >> $env:GITHUB_ENV | ||
echo "Current Branch: $GIT_BRANCH" | ||
$SHORT_SHA=${env:GITHUB_SHA}.Substring(0,7) | ||
echo "SHORT_SHA=$SHORT_SHA" >> $env:GITHUB_ENV | ||
echo "Current commit hash id: ${env:GITHUB_SHA} ($SHORT_SHA)" | ||
$GIT_TAG_VERSION=git tag -l | where { $_ -match $VERSION_REGEXP } | sort -descending -top 1 | ||
$GIT_TAG_PRE_VERSION=git tag -l | where { $_ -match $VERSION_REGEXP } | sort -descending -top 1 | ||
if ($GIT_TAG_PRE_VERSION -eq $GIT_TAG_VERSION + '-pre') { $GIT_TAG_LATEST=$GIT_TAG_VERSION } | ||
else { $GIT_TAG_LATEST=@($GIT_TAG_VERSION, $GIT_TAG_PRE_VERSION) | sort -descending -top 1 } | ||
echo "GIT_TAG_LATEST=$GIT_TAG_LATEST" >> $env:GITHUB_ENV | ||
echo "Latest Tag: $GIT_TAG_LATEST" | ||
# 配置构建信息 | ||
- name: Configurate Build Information 🖨 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$BUILD_PATH="$pwd\build" | ||
echo "BUILD_PATH=$BUILD_PATH" >> $env:GITHUB_ENV | ||
$BUILD_VERSION=cat .\versioninfo.json | jq -r '.StringFileInfo.ProductVersion' | ||
echo "BUILD_VERSION=$BUILD_VERSION" >> $env:GITHUB_ENV | ||
echo "Build Version: $BUILD_VERSION" | ||
$GIT_TAG="$BUILD_VERSION$(${env:GIT_BRANCH} -ne 'release' ? '-pre' : '')" | ||
echo "GIT_TAG=$GIT_TAG" >> $env:GITHUB_ENV | ||
echo "Current Tag: $GIT_TAG" | ||
# # 构建前检查 | ||
# - name: Check on Failures ❌ | ||
# if: success() | ||
# shell: pwsh | ||
# run: | | ||
|
||
# 配置Golang环境 | ||
- name: Setup Go Environment 📍 | ||
uses: actions/setup-go@v2 | ||
if: success() | ||
with: | ||
go-version: ${{ env.go-version }} | ||
stable: ${{ env.go-stable }} | ||
|
||
# 获取依赖包 | ||
- name: Get Go Modules 📟 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
go version | ||
go env | ||
mkdir -p .\build | ||
# 运行Golang测试 | ||
# - name: Golang Test ✅ | ||
# run: | | ||
|
||
# 构建64位应用 | ||
- name: Build x64 Application 🛠 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$env:GOOS="windows" | ||
$env:GOARCH="amd64" | ||
go build -ldflags "-H=windowsgui -s -w" -o .\build\Clash.Mini_dev_x64.exe | ||
# 构建32位应用 | ||
- name: Build x86 Application 🛠 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$env:GOOS="windows" | ||
$env:GOARCH="386" | ||
go build -a -v -x -ldflags "-H=windowsgui -s -w" -o .\build\Clash.Mini_dev_x86.exe | ||
# 准备上传Artifact文件 | ||
- name: Prepare to Upload 🕹 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
cd $env:BUILD_PATH | ||
mkdir -p .\publish | ||
$BUILD_X64_FILENAME="Clash.Mini_${env:GIT_BRANCH}_${env:BUILD_VERSION}_${env:SHORT_SHA}_x64.exe" | ||
$BUILD_X86_FILENAME="Clash.Mini_${env:GIT_BRANCH}_${env:BUILD_VERSION}_${env:SHORT_SHA}_x86.exe" | ||
echo "BUILD_X64_FILENAME=$BUILD_X64_FILENAME" >> $env:GITHUB_ENV | ||
echo "BUILD_X86_FILENAME=$BUILD_X86_FILENAME" >> $env:GITHUB_ENV | ||
cp .\Clash.Mini_dev_*.exe .\publish\ | ||
echo "Ready to upload the following file(s):" | ||
ls .\publish | ||
# 上传64位应用到Actions Artifacts | ||
- name: Upload x64 Application to Artifacts 📤 | ||
if: success() | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.BUILD_X64_FILENAME }} | ||
path: ${{ env.BUILD_PATH }}\publish\*_x64.exe | ||
if-no-files-found: error | ||
retention-days: ${{ env.artifact-retention-days }} | ||
|
||
# 上传32位应用到Actions Artifacts | ||
- name: Upload x86 Application to Artifacts 📤 | ||
if: success() | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.BUILD_X86_FILENAME }} | ||
path: ${{ env.BUILD_PATH }}\publish\*_x86.exe | ||
if-no-files-found: error | ||
retention-days: ${{ env.artifact-retention-days }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
name: Build Release Windows | ||
on: | ||
push: | ||
branches: | ||
- release | ||
- pre-release | ||
pull_request: | ||
branches: | ||
- release | ||
- pre-release | ||
# tags: | ||
# - 'v*.*.*' | ||
|
||
env: | ||
go-version: '^1.16.4' | ||
go-stable: 'true' | ||
artifact-retention-days: 5 | ||
|
||
jobs: | ||
build-and-publish: | ||
name: Build & Publish (Pre)Release Windows | ||
runs-on: windows-latest | ||
if: ${{ !contains(github.event.head_commit.message, '[Skip CI]') }} | ||
steps: | ||
# 拉取项目代码 | ||
- name: Checkout 🔀 | ||
uses: actions/checkout@v2 | ||
with: | ||
persist-credentials: false | ||
fetch-depth: 0 | ||
|
||
# 获取Git信息 | ||
- name: Get Git Info 💡 | ||
shell: pwsh | ||
run: | | ||
$VERSION_REGEXP='^v?\d+\.\d+\.\d+(\.\d+)?-pre$' | ||
echo "VERSION_REGEXP=$VERSION_REGEXP" >> $env:GITHUB_ENV | ||
$GIT_BRANCH=$env:GITHUB_REF -replace 'refs/heads/', '' | ||
echo "GIT_BRANCH=$GIT_BRANCH" >> $env:GITHUB_ENV | ||
echo "Current Branch: $GIT_BRANCH" | ||
$SHORT_SHA=${env:GITHUB_SHA}.Substring(0,7) | ||
echo "SHORT_SHA=$SHORT_SHA" >> $env:GITHUB_ENV | ||
echo "Current commit hash id: ${env:GITHUB_SHA} ($SHORT_SHA)" | ||
$GIT_TAG_VERSION=git tag -l | where { $_ -match $VERSION_REGEXP } | sort -descending -top 1 | ||
$GIT_TAG_PRE_VERSION=git tag -l | where { $_ -match $VERSION_REGEXP } | sort -descending -top 1 | ||
if ($GIT_TAG_PRE_VERSION -eq $GIT_TAG_VERSION + '-pre') { $GIT_TAG_LATEST=$GIT_TAG_VERSION } | ||
else { $GIT_TAG_LATEST=@($GIT_TAG_VERSION, $GIT_TAG_PRE_VERSION) | sort -descending -top 1 } | ||
echo "GIT_TAG_LATEST=$GIT_TAG_LATEST" >> $env:GITHUB_ENV | ||
echo "Latest Tag: $GIT_TAG_LATEST" | ||
# 配置构建信息 | ||
- name: Configurate Build Information 🖨 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$BUILD_PATH="$pwd\build" | ||
echo "BUILD_PATH=$BUILD_PATH" >> $env:GITHUB_ENV | ||
$BUILD_VERSION=cat .\versioninfo.json | jq -r '.StringFileInfo.ProductVersion' | ||
echo "BUILD_VERSION=$BUILD_VERSION" >> $env:GITHUB_ENV | ||
echo "Build Version: $BUILD_VERSION" | ||
$GIT_TAG="$BUILD_VERSION$(${env:GIT_BRANCH} -ne 'release' ? '-pre' : '')" | ||
echo "GIT_TAG=$GIT_TAG" >> $env:GITHUB_ENV | ||
echo "Current Tag: $GIT_TAG" | ||
# # 构建前检查 | ||
# - name: Check on Failures ❌ | ||
# if: success() | ||
# shell: pwsh | ||
# run: | | ||
|
||
# 配置Golang环境 | ||
- name: Setup Go Environment 📍 | ||
uses: actions/setup-go@v2 | ||
if: success() | ||
with: | ||
go-version: ${{ env.go-version }} | ||
stable: ${{ env.go-stable }} | ||
|
||
# 获取依赖包 | ||
- name: Get Go Modules 📟 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
go version | ||
go env | ||
mkdir -p .\build | ||
# 运行Golang测试 | ||
# - name: Golang Test ✅ | ||
# run: | | ||
|
||
# 构建64位应用 | ||
- name: Build x64 Application 🛠 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$env:GOOS="windows" | ||
$env:GOARCH="amd64" | ||
go build -ldflags "-H=windowsgui -s -w" -o .\build\Clash.Mini_x64.exe | ||
# 构建32位应用 | ||
- name: Build x86 Application 🛠 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
$env:GOOS="windows" | ||
$env:GOARCH="386" | ||
go build -a -v -x -ldflags "-H=windowsgui -s -w" -o .\build\Clash.Mini_x86.exe | ||
# 准备发布PreRelease文件 | ||
- id: prepare-pre-release | ||
name: Prepare to Publish PreRelease 🕹 | ||
if: ${{ env.GIT_BRANCH != 'release' && success() }} | ||
shell: pwsh | ||
run: | | ||
cd $env:BUILD_PATH | ||
mkdir -p .\publish | ||
$BUILD_X64_FILENAME="Clash.Mini_${env:GIT_BRANCH}_${env:BUILD_VERSION}_x64.exe" | ||
$BUILD_X86_FILENAME="Clash.Mini_${env:GIT_BRANCH}_${env:BUILD_VERSION}_x86.exe" | ||
echo "BUILD_X64_FILENAME=$BUILD_X64_FILENAME" >> $env:GITHUB_ENV | ||
echo "BUILD_X86_FILENAME=$BUILD_X86_FILENAME" >> $env:GITHUB_ENV | ||
cp .\Clash.Mini_*.exe .\publish\ | ||
echo "Ready to upload the following file(s):" | ||
ls .\publish | ||
# 上传64位应用到Actions Artifacts | ||
- name: Upload x64 Application to Artifacts 📤 | ||
if: ${{ steps.prepare-pre-release.outcome == 'success' }} | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.BUILD_X64_FILENAME }} | ||
path: ${{ env.BUILD_PATH }}\publish\*_x64.exe | ||
if-no-files-found: error | ||
retention-days: ${{ env.artifact-retention-days }} | ||
|
||
# 上传32位应用到Actions Artifacts | ||
- name: Upload x86 Application to Artifacts 📤 | ||
if: ${{ steps.prepare-pre-release.outcome == 'success' && success() }} | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.BUILD_X86_FILENAME }} | ||
path: ${{ env.BUILD_PATH }}\publish\*_x86.exe | ||
if-no-files-found: error | ||
retention-days: ${{ env.artifact-retention-days }} | ||
|
||
# 准备发布Release文件 | ||
- name: Prepare to Publish Release 🕹 | ||
if: ${{ env.GIT_BRANCH == 'release' && success() }} | ||
shell: pwsh | ||
run: | | ||
cd $env:BUILD_PATH | ||
mkdir -p .\publish | ||
cp .\Clash.Mini_*.exe .\publish\ | ||
echo "Ready to upload the following file(s):" | ||
ls .\publish | ||
# 准备压缩 | ||
- name: Prepare to Compression 🕹 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
cd $env:BUILD_PATH | ||
mkdir -p ($PUBLISH_PATH_X64="${env:BUILD_PATH}\publish\x64") | ||
mkdir -p ($PUBLISH_PATH_X86="${env:BUILD_PATH}\publish\x86") | ||
echo "PUBLISH_PATH_X64=$PUBLISH_PATH_X64" >> $env:GITHUB_ENV | ||
echo "PUBLISH_PATH_X86=$PUBLISH_PATH_X86" >> $env:GITHUB_ENV | ||
mkdir -p .\Profile | ||
$packageFiles=@(".\Profile", "..\config.yaml", "..\Country.mmdb") | ||
mv .\publish\Clash.Mini*64.exe $PUBLISH_PATH_X64\Clash.Mini.exe | ||
$filesX64=$packageFiles | ||
foreach ($file in $filesX64) { cp $file $PUBLISH_PATH_X64\ } | ||
mv .\publish\Clash.Mini*86.exe $PUBLISH_PATH_X86\Clash.Mini.exe | ||
$filesX86=$packageFiles | ||
foreach ($file in $filesX86) { cp $file $PUBLISH_PATH_X86\ } | ||
# 压缩打包 | ||
- name: Compression x64 📦 | ||
if: success() | ||
shell: pwsh | ||
run: | | ||
7z a -t7z -mx=9 ${env:BUILD_PATH}\publish\Clash.Mini.${{ env.GIT_TAG }}.x64.7z ${env:PUBLISH_PATH_X64}\* | ||
7z a -t7z -mx=9 ${env:BUILD_PATH}\publish\Clash.Mini.${{ env.GIT_TAG }}.x86.7z ${env:PUBLISH_PATH_X86}\* | ||
# 发布到Releases | ||
- name: Publish to Releases 💸 | ||
if: success() | ||
uses: ncipollo/release-action@v1 | ||
with: | ||
prerelease: ${{ env.GIT_BRANCH != 'release' }} | ||
tag: ${{ env.GIT_TAG }} | ||
artifacts: ${{ env.BUILD_PATH }}\publish\Clash.Mini*.7z | ||
# bodyFile: .\CHANGELOG.md | ||
bodyFile: .\RELEASELOG.md | ||
token: ${{ secrets.ACTION_ACCESS_TOKEN }} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
## Release Log | ||
|
||
### **v0.1.2-pre** | ||
|
||
Release on *2021-05-29 20:30* | ||
|
||
**Features** | ||
|
||
1. Part of the code has been refactored | ||
2. Fixed an encoding problem of the generated schtasks file | ||
3. GitHub Actions has been configured |