name: Qbot-Build-Release
on:
push:
branches: [ master ]
paths-ignore:
- '**/README.md'
- '**/*.yml'
- ".idea"
- ".vscode"
- ".dockerignore"
- "Dockerfile"
- ".gitignore"
- "!.github/workflows/qbot-release.yml"
tags:
- v*
pull_request:
branches: [ master ]
jobs:
release:
name: Create Release
runs-on: ${{ matrix.os }}
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
strategy:
matrix:
os: [macos-11.0]
python-version: [3.8]
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
draft: true
prerelease: true
tag_name: ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ci_release:
runs-on: ${{ matrix.os }}
needs: release
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
python-version: [3.8]
environment: qbot_release
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 14
- name: Cache Node Dependencies
id: cache
uses: actions/cache@v1
with:
path: node_modules
key: ${{runner.OS}}-npm-caches-${{ hashFiles('release-lock.json') }}
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.18
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
cd $GITHUB_WORKSPACE/pyfunds/fund-strategies
npm install
- name: Build Release Files
run: |
pyinstaller -F -w --clean --add-data gui/bkt_result/bkt_result.html:gui/bkt_result/bkt_result.html --add-data gui/imgs/wechat.png:gui/imgs/wechat.png main.py -n qbot --icon=./gui/imgs/logo.ico
cd $GITHUB_WORKSPACE/pyfunds/fund-strategies
npm run build
cd $GITHUB_WORKSPACE/investool
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/axiaoxin-com/investool/version.Version=`TZ=Asia/Shanghai date +'%y%m%d%H%M'`" -o investool_app_mac
sed -i "s/env = \"localhost\"/env = \"prod\"/g" config.toml && tar czvf investool_app_mac.tar.gz investool_app_mac config.toml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Package
working-directory: .
run: |
mkdir -p release/fund-strategies release/investool
mv $GITHUB_WORKSPACE/pyfunds/fund-strategies/dist/* release/fund-strategies
mv $GITHUB_WORKSPACE/investool/* release/investool
mv ./dist/* release/
tar -zcvf qbot_release_${{ matrix.os }}_v1.tar.gz ./release
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: release_on_${{ matrix. os }}
path: qbot_release_mac_v1.tar.gz
retention-days: 7
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v1.0.0
release_name: Release v1.0.0
draft: true
prerelease: true
- name: Upload assets
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.release.outputs.upload_url }}
asset_path: qbot_release_mac_v1.tar.gz
asset_name: qbot_release_mac_v1.tar.gz
asset_content_type: application/gzip