test6 #36
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
name: Yakit-CE-CI | |
# 社区版 | |
on: | |
push: | |
branches: | |
- "ci/ce-*" | |
tags: | |
- "v*-ce" | |
jobs: | |
build_yakit: | |
runs-on: macos-13 | |
env: | |
CI: "" | |
NODE_OPTIONS: --max_old_space_size=4096 | |
IS_TAG_RELEASE: ${{ startsWith(github.ref, 'refs/tags/v') && 'tag/v' || 'ci/ce' }} # 全版本发布 | |
PACKAGING_PLATFORM: ${{ contains(github.ref, 'mac') && 'mac' || contains(github.ref, 'linux') && 'linux' || contains(github.ref, 'win') && 'win' || 'mwl' }} | |
COMPATIBILITY_MODE: ${{ (startsWith(github.ref, 'refs/heads/ci/ce-') && contains(github.ref, 'legacy')) && 'legacy' || 'normal' }} | |
steps: | |
- name: Show Custom ENV | |
run: echo ${{ env.IS_TAG_RELEASE }} ${{ env.PACKAGING_PLATFORM }} ${{ env.COMPATIBILITY_MODE }} | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18.18.2 | |
# 缓存 yarn 依赖包 ↓↓↓ | |
cache: "yarn" | |
cache-dependency-path: | | |
yarn.lock | |
app/renderer/src/main/yarn.lock | |
- run: echo ${{ github.ref }} | |
- run: cp buildutil/zip /usr/local/bin/zip | |
- run: chmod +x /usr/local/bin/zip | |
- run: zip -h | |
- name: "Download Yak Engine via wget(MacOS)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac' }} | |
id: download-darwin-engine | |
run: wget -O bins/yak_darwin_amd64 https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_darwin_amd64 && zip ./bins/yak_darwin_amd64.zip ./bins/yak_darwin_amd64 && rm ./bins/yak_darwin_amd64 | |
- name: "Download Yak Engine via wget(MacOS-arm64)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac' }} | |
id: download-darwin-engine-arm64 | |
run: wget -O bins/yak_darwin_arm64 https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_darwin_arm64 && zip ./bins/yak_darwin_arm64.zip ./bins/yak_darwin_arm64 && rm ./bins/yak_darwin_arm64 | |
- name: "Download Yak Engine via wget(Linux)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux' }} | |
id: download-linux-engine | |
run: wget -O bins/yak_linux_amd64 https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_linux_amd64 && zip ./bins/yak_linux_amd64.zip ./bins/yak_linux_amd64 && rm ./bins/yak_linux_amd64 | |
- name: "Download Yak Engine via wget(Linux-arm64)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux' }} | |
id: download-linux-engine-arm64 | |
run: wget -O bins/yak_linux_arm64 https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_linux_arm64 && zip ./bins/yak_linux_arm64.zip ./bins/yak_linux_arm64 && rm ./bins/yak_linux_arm64 | |
- name: "Download Yak Engine via wget(Windows)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'win' }} | |
id: download-windows-engine | |
run: wget -O bins/yak_windows_amd64.exe https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_windows_amd64.exe && zip ./bins/yak_windows_amd64.zip ./bins/yak_windows_amd64.exe && rm ./bins/yak_windows_amd64.exe | |
- name: "Fetch Latest EngineVersion" | |
id: fetch-version-engine | |
run: wget -O bins/engine-version.txt https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/version.txt | |
- run: ls ./bins && cat bins/engine-version.txt | |
- name: Extract Package.json Version | |
id: extract_version | |
uses: Saionaro/[email protected] | |
- name: Set 渗透测试平台V1.0-CE Package.json Version | |
uses: mad9000/actions-find-and-replace-string@5 | |
id: package_ce_version | |
with: | |
source: ${{ steps.extract_version.outputs.version }} | |
find: "-ce" | |
replace: "" | |
- name: Set 渗透测试平台V1.0-EE Package.json Version | |
uses: mad9000/actions-find-and-replace-string@5 | |
id: package_version | |
with: | |
source: ${{ steps.package_ce_version.outputs.value }} | |
find: "-ee" | |
replace: "" | |
- name: Echo 渗透测试平台V1.0 Package Version | |
run: echo ${{ steps.package_version.outputs.value }} | |
- run: yarn install && yarn install-render | |
working-directory: ./ | |
name: "Install Dependencies" | |
- name: "Build CE Render" | |
working-directory: ./ | |
run: yarn build-render | |
- name: Build 渗透测试平台V1.0 (MultiPlatform) | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || (env.PACKAGING_PLATFORM == 'mwl' && env.COMPATIBILITY_MODE == 'normal') }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn add -D dmg-license && yarn electron-publish | |
- name: Build 渗透测试平台V1.0 (MAC) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'mac' && env.COMPATIBILITY_MODE == 'normal' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-mac | |
- name: Build 渗透测试平台V1.0 (LINUX) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'linux' && env.COMPATIBILITY_MODE == 'normal' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-linux | |
- name: Build 渗透测试平台V1.0 (WIN) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'win' && env.COMPATIBILITY_MODE == 'normal' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-win | |
- run: yarn add [email protected] | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.COMPATIBILITY_MODE == 'legacy' }} | |
working-directory: ./ | |
name: "Install Legacy Electron" | |
- name: "Download Yak Legacy Engine via wget(Windows)" | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || env.COMPATIBILITY_MODE == 'legacy' }} | |
id: download-windows-leagacy-engine | |
run: rm ./bins/yak_windows_amd64.zip && wget -O bins/yak_windows_amd64.exe https://yaklang.oss-accelerate.aliyuncs.com/yak/latest/yak_windows_legacy_amd64.exe && zip ./bins/yak_windows_amd64.zip ./bins/yak_windows_amd64.exe && rm ./bins/yak_windows_amd64.exe | |
- name: Build 渗透测试平台V1.0 Legacy (MultiPlatform) | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || (env.PACKAGING_PLATFORM == 'mwl' && env.COMPATIBILITY_MODE == 'legacy') }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn add -D dmg-license && yarn electron-publish-legacy | |
- name: Build 渗透测试平台V1.0 Legacy (MAC) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'mac' && env.COMPATIBILITY_MODE == 'legacy' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-mac-legacy | |
- name: Build 渗透测试平台V1.0 Legacy (LINUX) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'linux' && env.COMPATIBILITY_MODE == 'legacy' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-linux-legacy | |
- name: Build 渗透测试平台V1.0 Legacy (WIN) | |
if: ${{ env.IS_TAG_RELEASE != 'tag/v' && env.PACKAGING_PLATFORM == 'win' && env.COMPATIBILITY_MODE == 'legacy' }} | |
env: | |
GH_TOKEN: ${{ secrets.GH_TOKEN }} | |
working-directory: ./ | |
run: yarn pack-win-legacy | |
- name: View Published Content | |
run: | |
ls ./release | |
# stcsPlatform-1.3.4-sp6-darwin-arm64.dmg | |
# stcsPlatform-1.3.4-sp6-darwin-x64.dmg | |
# stcsPlatform-1.3.4-sp6-linux-amd64.AppImage | |
# stcsPlatform-1.3.4-sp6-linux-arm64.AppImage | |
# stcsPlatform-1.3.4-sp6-windows-amd64.exe | |
# stcsPlatform-1.3.4-sp6-darwin-legacy-arm64.dmg | |
# stcsPlatform-1.3.4-sp6-darwin-legacy-x64.dmg | |
# stcsPlatform-1.3.4-sp6-linux-legacy-amd64.AppImage | |
# stcsPlatform-1.3.4-sp6-linux-legacy-arm64.AppImage | |
# stcsPlatform-1.3.4-sp6-windows-legacy-amd64.exe | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Windows | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'win') && env.COMPATIBILITY_MODE == 'normal') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-windows-amd64.exe | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-windows-amd64.exe | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-windows-amd64.exe | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Mac(m1) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac') && env.COMPATIBILITY_MODE == 'normal') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-darwin-arm64.dmg | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-darwin-arm64.dmg | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-darwin-arm64.dmg | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Mac(intel) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac') && env.COMPATIBILITY_MODE == 'normal') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-darwin-x64.dmg | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-darwin-x64.dmg | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-darwin-x64.dmg | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Linux(amd64) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux') && env.COMPATIBILITY_MODE == 'normal') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-linux-amd64.AppImage | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-linux-amd64.AppImage | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-linux-amd64.AppImage | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Linux(arm64) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux') && env.COMPATIBILITY_MODE == 'normal') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-linux-arm64.AppImage | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-linux-arm64.AppImage | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-linux-arm64.AppImage | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Legacy Windows | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'win') && env.COMPATIBILITY_MODE == 'legacy') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-windows-legacy-amd64.exe | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-windows-legacy-amd64.exe | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-windows-legacy-amd64.exe | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Legacy Mac(m1) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac') && env.COMPATIBILITY_MODE == 'legacy') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-darwin-legacy-arm64.dmg | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-darwin-legacy-arm64.dmg | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-darwin-legacy-arm64.dmg | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Legacy Mac(intel) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'mac') && env.COMPATIBILITY_MODE == 'legacy') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-darwin-legacy-x64.dmg | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-darwin-legacy-x64.dmg | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-darwin-legacy-x64.dmg | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Legacy Linux(amd64) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux') && env.COMPATIBILITY_MODE == 'legacy') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-linux-legacy-amd64.AppImage | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-linux-legacy-amd64.AppImage | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-linux-legacy-amd64.AppImage | |
if-no-files-found: error | |
- name: Upload 渗透测试平台V1.0(CE) Artifacts Legacy Linux(arm64) | |
uses: actions/upload-artifact@v4 | |
if: ${{ env.IS_TAG_RELEASE == 'tag/v' || ((env.PACKAGING_PLATFORM == 'mwl' || env.PACKAGING_PLATFORM == 'linux') && env.COMPATIBILITY_MODE == 'legacy') }} | |
with: | |
# stcsPlatform-1.3.4-sp6-linux-legacy-arm64.AppImage | |
name: stcsPlatform-${{ steps.package_version.outputs.value }}-linux-legacy-arm64.AppImage | |
path: ./release/渗透测试平台V1.0-${{ steps.package_version.outputs.value }}-linux-legacy-arm64.AppImage | |
if-no-files-found: error | |
publish_yakit_ce_to_oss: | |
if: ${{ startsWith(github.ref, 'refs/tags/v') }} | |
needs: | |
- build_yakit | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch 渗透测试平台V1.0 CE Tag | |
uses: mad9000/actions-find-and-replace-string@5 | |
id: fetch_tag_release | |
with: | |
source: ${{ github.ref }} | |
find: "refs/tags/v" | |
replace: "" | |
- name: Generate 渗透测试平台V1.0 CE Version | |
uses: mad9000/actions-find-and-replace-string@5 | |
id: generate_version | |
with: | |
source: ${{ steps.fetch_tag_release.outputs.value }} | |
find: "-ce" | |
replace: "" | |
- name: Download 渗透测试平台V1.0 And Legacy 渗透测试平台V1.0 | |
uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- run: ls | |
name: Ls Published Artifacts... | |
- name: Create Release and Upload Assets | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: ./* | |
token: ${{ secrets.GITHUB_TOKEN }} | |
name: Release ${{ github.ref_name }} | |
tag: ${{ github.ref_name }} | |
- name: Upload 渗透测试平台V1.0 To OSS | |
uses: tvrcgo/upload-to-oss@master | |
with: | |
key-id: ${{ secrets.OSS_KEY_ID }} | |
key-secret: ${{ secrets.OSS_KEY_SECRET }} | |
region: oss-accelerate | |
bucket: yaklang | |
assets: | | |
*:/yak/${{ steps.generate_version.outputs.value }}/ | |
- name: Update OSS latest file | |
run: echo ${{ steps.generate_version.outputs.value }} > ./yakit-version.txt | |
- name: Upload 渗透测试平台V1.0 Version to oss | |
uses: tvrcgo/upload-to-oss@master | |
with: | |
key-id: ${{ secrets.OSS_KEY_ID }} | |
key-secret: ${{ secrets.OSS_KEY_SECRET }} | |
region: oss-accelerate | |
bucket: yaklang | |
assets: | | |
./yakit-version.txt:/yak/latest/yakit-version.txt |