From bcd6d3eb6cbc3b1843d4240d846d0586d4c7066a Mon Sep 17 00:00:00 2001 From: rankun Date: Fri, 13 Mar 2020 16:46:34 +0800 Subject: [PATCH] feat: mac package dmg --- .github/workflows/macos.yml | 17 +++++++-- .github/workflows/windows.yml | 10 +++++- ci/mac/package/dmg-background.jpg | Bin 0 -> 41945 bytes ci/mac/package/package.py | 55 ++++++++++++++++++++++++++++++ ci/mac/package/requirements.txt | 1 + ci/mac/package_for_mac.sh | 37 ++++++++++++++++++++ 6 files changed, 117 insertions(+), 3 deletions(-) create mode 100644 ci/mac/package/dmg-background.jpg create mode 100644 ci/mac/package/package.py create mode 100644 ci/mac/package/requirements.txt create mode 100755 ci/mac/package_for_mac.sh diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index c5d3e60..84fe4fa 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -46,15 +46,18 @@ jobs: - uses: actions/checkout@v1 with: fetch-depth: 1 + # 编译 - name: Build MacOS run: | export ENV_QT_CLANG=$(pwd)/${{env.Qt5_Dir}} ci/mac/build_for_mac.sh release + # 发布 - name: Publish if: startsWith(github.event.ref, 'refs/tags/') run: | export ENV_QT_CLANG=$(pwd)/${{env.Qt5_Dir}} ci/mac/publish_for_mac.sh ../build + ci/mac/package_for_mac.sh # tag 打包 - name: Package if: startsWith(github.event.ref, 'refs/tags/') @@ -65,7 +68,7 @@ jobs: [string]$tag = ${env:ref}.Substring(${env:ref}.LastIndexOf('/') + 1) [string]$name = 'QtScrcpy-mac-x64-' + ${tag} # 打包zip - Compress-Archive -Path ci\build\QtScrcpy.app ci\build\${name}.zip + Compress-Archive -Path ci\build\QtScrcpy.dmg ci\build\${name}.zip # 查询Release - name: Query Release if: startsWith(github.event.ref, 'refs/tags/') @@ -73,12 +76,20 @@ jobs: env: githubFullName: ${{ github.event.repository.full_name }} ref: ${{ github.event.ref }} + github_token: ${{ secrets.GITHUB_TOKEN }} run: | [string]$tag = ${env:ref}.Substring(${env:ref}.LastIndexOf('/') + 1) [string]$url = 'https://api.github.com/repos/' + ${env:githubFullName} + '/releases/tags/' + ${tag} + + $token = ${env:github_token} + $authInfo = ("{0}" -f $token) + $authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo) + $authInfo = [System.Convert]::ToBase64String($authInfo) + $headers = @{Authorization=("barry-ran {0}" -f $authInfo)} + $response={} try { - $response = Invoke-RestMethod -Uri $url -Method Get + $response = Invoke-RestMethod -Uri $url -Headers $headers -Method Get } catch { Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__ Write-Host "StatusDescription:" $_.Exception.Response.StatusDescription @@ -102,12 +113,14 @@ jobs: run: | [string]$tag = ${env:ref}.Substring(${env:ref}.LastIndexOf('/') + 1) [string]$url = 'https://api.github.com/repos/' + ${env:githubFullName} + '/releases/tags/' + ${tag} + # github token防止api rate limite,否则一个小时只能60个api请求 $token = ${env:github_token} $authInfo = ("{0}" -f $token) $authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo) $authInfo = [System.Convert]::ToBase64String($authInfo) $headers = @{Authorization=("barry-ran {0}" -f $authInfo)} + $response = Invoke-RestMethod -Uri $url -ContentType 'text/json' -Headers $headers -Method Get [string]$latestUpUrl = $response.upload_url Write-Host 'latestUpUrl:'$latestUpUrl diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 2b40ad2..6b58178 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -103,12 +103,20 @@ jobs: env: githubFullName: ${{ github.event.repository.full_name }} ref: ${{ github.event.ref }} + github_token: ${{ secrets.GITHUB_TOKEN }} run: | [string]$tag = ${env:ref}.Substring(${env:ref}.LastIndexOf('/') + 1) [string]$url = 'https://api.github.com/repos/' + ${env:githubFullName} + '/releases/tags/' + ${tag} + + $token = ${env:github_token} + $authInfo = ("{0}" -f $token) + $authInfo = [System.Text.Encoding]::UTF8.GetBytes($authInfo) + $authInfo = [System.Convert]::ToBase64String($authInfo) + $headers = @{Authorization=("barry-ran {0}" -f $authInfo)} + $response={} try { - $response = Invoke-RestMethod -Uri $url -Method Get + $response = Invoke-RestMethod -Uri $url -Headers $headers -Method Get } catch { Write-Host "StatusCode:" $_.Exception.Response.StatusCode.value__ Write-Host "StatusDescription:" $_.Exception.Response.StatusDescription diff --git a/ci/mac/package/dmg-background.jpg b/ci/mac/package/dmg-background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..84c50745d2046724bb729311ce182bb05f0e98db GIT binary patch literal 41945 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 P1 /dev/null # disable output +# 设置当前目录,cd的目录影响接下来执行程序的工作目录 +old_cd=$(pwd) +cd $(dirname "$0") + +echo +echo +echo --------------------------------------------------------------- +echo pip install requirements +echo --------------------------------------------------------------- + +pip install -r $script_path/package/requirements.txt +if [ $? -ne 0 ] ;then + echo "pip install requirements failed" + exit 1 +fi + +echo +echo +echo --------------------------------------------------------------- +echo create package +echo --------------------------------------------------------------- + +python $script_path/package/package.py +if [ $? -ne 0 ] ;then + echo "create package failed" + exit 1 +fi + +# 恢复当前目录 +cd $old_cd +exit 0