File: macos.yml

package info (click to toggle)
goldendict-webengine 23.02.05-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 19,148 kB
  • sloc: cpp: 58,537; javascript: 9,942; ansic: 9,242; xml: 41; makefile: 15; sh: 9
file content (137 lines) | stat: -rw-r--r-- 5,584 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: macos
concurrency: 
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
on: 
  # workflow_run:
  #   workflows: [AutoTag]
  #   types: [completed]
  workflow_dispatch:
  push:
    branches:
      - dev
      - master
      # - staged
    paths-ignore:
      - 'docs/**'
      - ".github/**"
      - "howto/**"
      - "*.md"
      - ".clang-format"

jobs:
  build:
    name: Build
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [macos-11.0]
        qt_ver: [5.15.2]
        qt_arch: [clang_64]
    env:
      targetName: GoldenDict
      version: 23.02.06
      version-suffix: LanternFestival
      prerelease: false

    steps:
      # macos 11.0 默认环境变了,要指定
      - name: prepare env
        if: ${{ matrix.os == 'macos-11.0' }}
        run: |
          softwareupdate --all --install --force
          sudo xcode-select --print-path
          sudo xcode-select --switch /Library/Developer/CommandLineTools    
          # brew install qt@6   
      - uses: actions/setup-python@v3
        with:
          python-version: '3.9'          
      - name: Install Qt
        uses: jurplel/install-qt-action@v3
        # if: ${{ matrix.qt_ver == '5.15.2' }}
        with:
          version: ${{ matrix.qt_ver }}
          cached: 'false'
          modules: qtwebengine
          setup-python: 'false'
          
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0

      - name: version-file
        shell: bash
        run: |   
          previousTag=$(git tag --sort=-creatordate | sed -n 1p |cut -c 2-)
          echo "$previousTag">version.txt
                    
      - name: build macos
        run: |
          brew uninstall opencc hunspell ffmpeg@5 ffmpeg@4 libtiff xz lzo libogg libvorbis zstd || true
          brew install create-dmg
          qmake CONFIG+=release CONFIG+=no_extra_tiff_handler   CONFIG+=zim_support   CONFIG+=chinese_conversion_support
          make -j$(nproc)
      # 打包
      - name: package
        run: |
          macdeployqt ${targetName}.app -qmldir=. -verbose=1
          codesign --force --deep -s - GoldenDict.app
          otool -L GoldenDict.app/Contents/MacOS/GoldenDict
          otool -L GoldenDict.app/Contents/Frameworks/lib*
          mkdir tmp
          mv ${targetName}.app ./tmp
          # --background "installer_background.png"
          create-dmg --volname "${targetName} Installer" --volicon "icons/macicon.icns" --window-pos 200 120 --window-size 800 400 --icon-size 100 --icon "${targetName}.app" 200 190 --hide-extension "${targetName}.app" --app-drop-link 600 185 --skip-jenkins "${targetName}.dmg" tmp/
      - name: changelog
        id: changelog
        run: |   
          previousTag=$(git tag --sort=-creatordate | sed -n 2p)
          echo "previousTag : $previousTag"
          
          CHANGELOG="$(git log --oneline --no-decorate $previousTag..HEAD)"
          CHANGELOG="${CHANGELOG//'%'/'%25'}"
          CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
          CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
          CHANGELOG="${CHANGELOG//'\"'/'%22'}"
          CHANGELOG="${CHANGELOG//"'"/ }"
          echo "::set-output name=changelog::$(echo "$CHANGELOG")"

      - name: Set outputs
        id: vars
        run: |
          echo "::set-output name=sha_short::$(git rev-parse --short=8 HEAD)"    
          echo "::set-output name=release_date::$(date +'%Y%m%d')"    
          echo "::set-output name=release_time::$(date +'%H%M%S')"  
          echo "::set-output name=release_time_clock::$(date +'%H:%M:%S')"   
          echo "::set-output name=release_hm::$(date +'%y%m%d')"  
         
      # tag 上传Release
      - name: uploadRelease
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: ${{ env.targetName }}.dmg
          asset_name: ${{ matrix.qt_ver }}-${{ env.targetName }}_${{ matrix.os }}_${{steps.vars.outputs.release_date}}.dmg
          tag: v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
          overwrite: true 
          release_name: GoldenDict-v${{env.version}}-${{env.version-suffix}}.${{ steps.vars.outputs.release_hm }}.${{ steps.vars.outputs.sha_short }}
          prerelease: ${{env.prerelease}}
          body: |
            release on date:      ${{steps.vars.outputs.release_date}} time: ${{steps.vars.outputs.release_time_clock}}  
            branch:               ${{ github.ref_name }}
            commit:               ${{ steps.vars.outputs.sha_short }} 
            Qt version:           Qt5.15.2, Qt6.X  
            Windows built with:   msvc64,  Visual studio 2019
            ## goldendict.exe can not be used alone 
            if you have a previous version. replace this maybe ok. if not ,download the whole bundle.

            AppImage built with:  Ubuntu-20.04 ,latest gcc
            macos built with:     macos-10.15,macos-11.0,clang_64 x86_64
                                  Qt6.X(Universal Build)
                                  Qt5.15.2(Intel Kind)
            auto built by github action. use on your on risk:-)
            **recommend version**:Qt6.X   (with the latest bug fixes and performance enhancements)   

            Filename pattern: **[Qt version]-GoldenDict-[OS]-[release-date].[ext]**
            CHANGES:
            ${{ steps.changelog.outputs.changelog }}