Skip to content

feat: 添加戳一戳支持。 #30

feat: 添加戳一戳支持。

feat: 添加戳一戳支持。 #30

Workflow file for this run

# 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-linux:
name: Build Linux
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
arch: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: latest
run_install: false
- name: run-vcpkg
uses: lukka/[email protected]
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.16.x'
- name: Prepare
run: |
pnpm install --no-frozen-lockfile
- 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 ${{ matrix.arch }} ${{ steps.tag.outputs.tag }}
- name: Upload artifact
uses: actions/[email protected]
with:
# Artifact name
name: telecord-${{ matrix.arch }}.build
path: tmp/build
build-windows:
name: Build Windows
runs-on: windows-latest
strategy:
matrix:
node-version: [16.x]
arch: ['x86_64']
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
with:
submodules: 'recursive'
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
- uses: pnpm/action-setup@v3
name: Install pnpm
with:
version: latest
run_install: false
- name: Generate TAG
id: Tag
run: |
$tag="continuous"
$name="Continuous Build"
if ( "true" -eq "${{ startsWith(github.ref, 'refs/tags/') }}" ) {
$tag="${{ github.ref_name }}"
$name='${{ github.ref_name }}'
}
echo "tag result: $tag - $name"
echo "::set-output name=tag::$tag"
echo "::set-output name=name::$name"
- name: run-vcpkg
uses: lukka/[email protected] # Option 2: specify 'latest' or 'latestrc' in the input version arguments:
- name: Prepare
run: |
pnpm install --no-frozen-lockfile
- uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: ${{ matrix.arch }}
- name: Build
run: |
powershell tools/windows/ci.ps1 ${{ matrix.arch }} ${{ steps.tag.outputs.tag }}
- name: Upload artifact
uses: actions/[email protected]
with:
# Artifact name
name: telecord-${{ matrix.arch }}.build
path: tmp/build
upload:
name: Create release and upload artifacts
needs:
- build-linux
- build-windows
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
- 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/*.node
- 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/*.node