chore: Optimize action #180
Workflow file for this run
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: Build Test Client | |
on: | |
push: | |
# branches: | |
# - "release_test" | |
jobs: | |
release: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
# - os: windows-latest | |
# file_extension: ".exe" | |
# - os: macos-latest | |
# arch: x86_64 | |
# file_extension: ".dmg" | |
# - os: macos-latest | |
# arch: arm64 | |
# file_extension: ".dmg" | |
- os: ubuntu-latest | |
file_extension: ".AppImage" | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Check out git repository | |
uses: actions/checkout@main | |
- name: Install JRE | |
uses: actions/setup-java@main | |
with: | |
java-version: "17" | |
distribution: "temurin" | |
java-package: "jre" | |
architecture: ${{ matrix.arch }} | |
- name: Enable TLS 1.0 and 1.1 in java.security | |
run: | | |
if [[ "${{ runner.os }}" == "Windows" ]]; then | |
sed -i '' "s/\(^jdk.tls.disabledAlgorithms=\)\(.*\)\( TLSv1, TLSv1.1,\)\(.*\)/\1\2\4/" $JAVA_HOME/conf/security/java.security | |
elseif [[ "${{ runner.os }}" == "Linux" ]]; then | |
sed -i "s/\(^jdk.tls.disabledAlgorithms=\)\(.*\)\( TLSv1, TLSv1.1,\)\(.*\)/\1\2\4/" $JAVA_HOME/conf/security/java.security | |
else | |
sed -i '' "s/\(^jdk.tls.disabledAlgorithms=\)\(.*\)\( TLSv1, TLSv1.1,\)\(.*\)/\1\2\4/" $JAVA_HOME/conf/security/java.security | |
fi | |
env: | |
JAVA_HOME: ${{ env.JAVA_HOME }} | |
- name: Copy JRE to static directory | |
run: | | |
mkdir -p chat2db-client/static/jre | |
cp -r "${JAVA_HOME}" chat2db-client/static/jre | |
if [[ "${{ runner.os }}" != "Windows" ]]; then | |
chmod -R 777 chat2db-client/static/jre | |
fi | |
env: | |
JAVA_HOME: ${{ env.JAVA_HOME }} | |
- name: Install Node.js | |
uses: actions/setup-node@main | |
with: | |
node-version: "16" | |
cache: "yarn" | |
cache-dependency-path: chat2db-client/yarn.lock | |
- name: Install Java and Maven | |
uses: actions/setup-java@main | |
with: | |
java-version: "17" | |
distribution: "temurin" | |
cache: "maven" | |
- name: Build and Copy Artifacts | |
run: | | |
cd chat2db-client | |
yarn install | |
yarn run build:web:prod --app_version=99.0.${{ github.run_id }} --app_port=10822 | |
cp -r dist ../chat2db-server/chat2db-server-start/src/main/resources/static/front | |
cp -r dist/index.html ../chat2db-server/chat2db-server-start/src/main/resources/thymeleaf/ | |
mvn clean package -B '-Dmaven.test.skip=true' -f ../chat2db-server/pom.xml | |
mkdir -p versions/99.0.${{ github.run_id }}/static | |
echo "99.0.${{ github.run_id }}" > versions/version | |
cp -r versions/version ./versions/ | |
cp chat2db-server/chat2db-server-start/target/chat2db-server-start.jar chat2db-client/versions/99.0.${{ github.run_id }}/static/ | |
- name: Prepare Build Electron | |
run: | | |
cd chat2db-client | |
yarn run build:web:desktop --app_version=99.0.${{ github.run_id }} --app_port=10822 | |
cp -r dist ./versions/99.0.${{ github.run_id }}/ | |
rm -r dist | |
- name: Build/release Electron app | |
uses: samuelmeuli/action-electron-builder@v1 | |
with: | |
package_root: "chat2db-client/" | |
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
args: > | |
-c.appId=com.chat2db.test | |
-c.productName=Chat2DB-Test | |
-c.win.publisherName=Chat2DB-Test | |
-c.nsis.shortcutName=Chat2DB-Test | |
-c.extraMetadata.version=99.0.${{ github.run_id }}-Test | |
--${{ matrix.os }} ${{ matrix.arch }} | |
# Only for macOS x86_64 | |
- name: Notarize MacOS x86_64 App | |
if: matrix.os == 'macos-latest' && matrix.arch == 'x86_64' | |
run: | | |
xcrun notarytool store-credentials "Chat2DB" --apple-id "${{ secrets.MAC_APPLE_ID }}" --password "${{ secrets.MAC_APPLE_PASSWORD }}" --team-id "${{ secrets.MAC_TEAM_ID }}" | |
xcrun notarytool submit chat2db-client/release/Chat2DB-Test-99.0.${{ github.run_id }}-Test.dmg --keychain-profile "Chat2DB" | |
# Build Jar包 | |
- name: Prepare upload for Jar | |
if: ${{ runner.os == 'macOS' && matrix.arch == 'x86_64' }} | |
run: | | |
mkdir -p oss_temp_file | |
cp chat2db-client/versions/99.0.${{ github.run_id }}/static/chat2db-server-start.jar ./oss_temp_file | |
cp -r chat2db-client/release/*.dmg ./oss_temp_file | |
cp -r chat2db-client/versions/99.0.${{ github.run_id }}/dist ./oss_temp_file/dist | |
cd chat2db-client/versions/99.0.${{ github.run_id }}/ && zip -r 99.0.${{ github.run_id }}.zip ./ | |
cp -r 99.0.${{ github.run_id }}.zip ../../../oss_temp_file | |
cd static/ && zip -r chat2db-server-start.zip ./ | |
cp -r chat2db-server-start.zip ../../../../oss_temp_file | |
- name: Prepare upload for OSS | |
run: | | |
mkdir -p oss_temp_file | |
cp -r chat2db-client/release/*${{ matrix.file_extension }} ./oss_temp_file | |
- name: Set up oss utils | |
uses: yizhoumo/setup-ossutil@v1 | |
with: | |
endpoint: "oss-accelerate.aliyuncs.com" | |
access-key-id: ${{ secrets.OSS_ACCESS_KEY_ID }} | |
access-key-secret: ${{ secrets.OSS_ACCESS_KEY_SECRET }} | |
ossutil-version: "1.7.16" | |
- name: Upload to OSS | |
run: | | |
ossutil cp -rf --acl=public-read ./oss_temp_file/ oss://chat2db-client/test/99.0.${{ github.run_id }}/ | |
- name: Send dingtalk message | |
uses: ghostoy/dingtalk-action@master | |
with: | |
webhook: ${{ secrets.DINGTALK_WEBHOOK }} | |
msgtype: markdown | |
content: | | |
{ | |
"title": "${{ matrix.os }}-test-打包完成通知", | |
"text": "# ${{ matrix.os }}-test-打包完成通知\n ![bang](https://oss.sqlgpt.cn/static/bang100.gif)\n ### 任务id:[${{ github.run_id }}](https://github.com/chat2db/Chat2DB/actions/runs/${{ github.run_id }})\n ### 下载地址:[https://oss.sqlgpt.cn/test/99.0.${{ github.run_id }}/${{ matrix.os }}-Test${{ matrix.file_extension }}](https://oss.sqlgpt.cn/test/99.0.${{ github.run_id }}/${{ matrix.os }}-Test${{ matrix.file_extension }})" | |
} |