feat: 添加自动安装脚本 #70
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
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: Build Packages | |
on: | |
release: | |
types: [published] | |
push: | |
tags: | |
- v* | |
branches: [ master, dev, ci] | |
pull_request: | |
branches: [ master ] | |
# # Allows you to run this workflow manually from the Actions tab | |
# workflow_dispatch: | |
jobs: | |
build-src: | |
name: Build Base Packages | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
node-version: [20.x] | |
ARCH: ['x86_64'] | |
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: 'recursive' | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: latest | |
run_install: false | |
- name: Prepare | |
run: | | |
sudo apt install wget -y | |
wget -c https://dldir1.qq.com/qqfile/qq/QQNT/Linux/QQ_3.2.7_240412_amd64_01.deb | |
sudo apt install -y libnotify4 | |
sudo dpkg -i QQ_3.2.7_240412_amd64_01.deb | |
- name: Generate TAG | |
id: Tag | |
run: | | |
tag='continuous' | |
name='Continuous Build' | |
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then | |
tag='${{ github.ref_name }}' | |
name='${{ github.ref_name }}' | |
fi | |
echo "tag result: $tag - $name" | |
echo "::set-output name=tag::$tag" | |
echo "::set-output name=name::$name" | |
- name: Build | |
run: | | |
tools/linux/ci.sh | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
# Artifact name | |
name: yui-${{ matrix.ARCH }}.build | |
path: tmp/build | |
upload: | |
name: Create release and upload artifacts | |
needs: | |
- build-src | |
runs-on: ubuntu-latest | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
- name: Inspect directory after downloading artifacts | |
run: ls -alFR | |
- name: Generate TAG | |
id: Tag | |
run: | | |
tag='continuous' | |
name='Continuous Build' | |
if [ 'true' == ${{ startsWith(github.ref, 'refs/tags/') }} ];then | |
tag='${{ github.ref_name }}' | |
name='${{ github.ref_name }}' | |
fi | |
echo "tag result: $tag - $name" | |
echo "::set-output name=tag::$tag" | |
echo "::set-output name=name::$name" | |
- name: Create release and upload artifacts | |
if: startsWith(github.ref, 'refs/heads/') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
sudo apt install -y fuse | |
wget -q https://github.com/TheAssassin/pyuploadtool/releases/download/continuous/pyuploadtool-x86_64.AppImage | |
chmod +x pyuploadtool-x86_64.AppImage | |
./pyuploadtool-x86_64.AppImage \ | |
**build/*.js \ | |
**build/*.yaml | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
# note you'll typically need to create a personal access token | |
# with permissions to create releases in the other repo | |
name: ${{ steps.tag.outputs.name }} | |
tag_name: ${{ steps.tag.outputs.tag }} | |
files: | | |
**build/*.js | |
**build/*.yaml |