name: "Build Release" on: push: tags: - "v*" permissions: write-all jobs: check-version: runs-on: ubuntu-latest steps: - name: Clone Repository uses: actions/checkout@v4 with: ref: main token: ${{ secrets.GITHUB_TOKEN }} - name: Extract version from tag run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x - name: Check Version run: | ls node ./script/checkVersion.cjs sh ./checkVersion.sh build-linux: needs: [check-version] runs-on: ubuntu-latest strategy: fail-fast: false matrix: target_platform: [linux] target_arch: [x64, arm64] steps: - name: Clone Main Repository uses: actions/checkout@v4 with: repository: 'NapNeko/NapCatQQ' submodules: true ref: main token: ${{ secrets.NAPCAT_BUILD }} - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x - name: Build NuCat Linux run: | export NAPCAT_BUILDSYS=${{ matrix.target_platform }} export NAPCAT_BUILDARCH=${{ matrix.target_arch }} npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} npm run build:prod cd dist npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} cd .. - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }} path: dist build-win32: runs-on: ubuntu-latest needs: [check-version] strategy: fail-fast: false matrix: target_platform: [win32] target_arch: [x64,ia32] steps: - name: Clone Main Repository uses: actions/checkout@v4 with: repository: 'NapNeko/NapCatQQ' submodules: true ref: main token: ${{ secrets.NAPCAT_BUILD }} - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x - name: Build NuCat Linux run: | export NAPCAT_BUILDSYS=${{ matrix.target_platform }} export NAPCAT_BUILDARCH=${{ matrix.target_arch }} npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} npm run build:prod cd dist npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} cd .. - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }} path: dist release-napcat: needs: [build-win32,build-linux] runs-on: ubuntu-latest steps: - name: Download All Artifact uses: actions/download-artifact@v4 - name: Compress subdirectories run: | for dir in */; do base=$(basename "$dir") zip -r "${base}.zip" "$dir" done - name: Extract version from tag run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV - name: Clone Changes Log run: curl -o CHANGELOG.md https://fastly.jsdelivr.net/gh/NapNeko/NapCatQQ@main/docs/changelogs/CHANGELOG.v${{ env.VERSION }}.md - name: Create Release Draft and Upload Artifacts uses: softprops/action-gh-release@v1 with: name: NapCat V${{ env.VERSION }} token: ${{ secrets.GITHUB_TOKEN }} body_path: CHANGELOG.md files: | NapCat.win32.ia32.zip NapCat.win32.x64.zip NapCat.linux.x64.zip NapCat.linux.arm64.zip # NapCat.darwin.x64.zip # NapCat.darwin.arm64.zip draft: true