name: package and release Zip on: workflow_call: inputs: release_tag: required: true type: string target: # windows linux macos windows-desktop required: true type: string secrets: GPG_PRIVATE_KEY: required: true permissions: contents: write actions: read jobs: package: name: package x64 arm64 strategy: matrix: arch: [ x64, arm64 ] runs-on: ubuntu-latest env: Target: |- ${{ case( inputs.target == 'windows-desktop', 'windows', inputs.target ) }} Arch: |- ${{ case( matrix.arch == 'x64', '64', matrix.arch ) }} steps: - name: Checkout uses: actions/checkout@v7 - name: Restore build artifacts uses: actions/download-artifact@v8 with: name: ${{ matrix.arch }} path: v2rayN-${{ env.Target }}-${{ env.Arch }} - name: Get v2rayN-core-bin run: wget -nv -O v2rayN-$Target-$Arch.zip "https://github.com/2dust/v2rayN-core-bin/raw/refs/heads/master/v2rayN-$Target-$Arch.zip" - name: Package zip archive run: 7z a -tZip v2rayN-$Target-$Arch.zip v2rayN-$Target-$Arch -mx1 - name: Rename windows-desktop if: inputs.target == 'windows-desktop' run: mv "v2rayN-$Target-$Arch.zip" "v2rayN-$Target-$Arch-desktop.zip" - name: Upload zip artifact uses: actions/upload-artifact@v7 with: name: release-${{ inputs.target }}-${{ matrix.arch }} path: v2rayN*.zip if-no-files-found: error release: name: sign and upload zip x64 arm64 needs: package strategy: matrix: arch: [ x64, arm64 ] uses: ./.github/workflows/upload-sign.yml with: release_tag: ${{ inputs.release_tag }} artifact_name: release-${{ inputs.target }}-${{ matrix.arch }} file_pattern: '*.zip' secrets: GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}