161 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
	
		
			4.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: MacOS Packaged.
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    paths-ignore:
 | 
						|
      - 'docs/**'
 | 
						|
      - '**.md'
 | 
						|
      - 'changelog.txt'
 | 
						|
      - 'LEGAL'
 | 
						|
      - 'LICENSE'
 | 
						|
      - '.github/**'
 | 
						|
      - '!.github/workflows/mac_packaged.yml'
 | 
						|
      - 'lib/xdg/**'
 | 
						|
      - 'snap/**'
 | 
						|
      - 'Telegram/build/**'
 | 
						|
      - 'Telegram/Resources/uwp/**'
 | 
						|
      - 'Telegram/Resources/winrc/**'
 | 
						|
      - 'Telegram/SourceFiles/platform/win/**'
 | 
						|
      - 'Telegram/SourceFiles/platform/linux/**'
 | 
						|
      - 'Telegram/configure.bat'
 | 
						|
  pull_request:
 | 
						|
    paths-ignore:
 | 
						|
      - 'docs/**'
 | 
						|
      - '**.md'
 | 
						|
      - 'changelog.txt'
 | 
						|
      - 'LEGAL'
 | 
						|
      - 'LICENSE'
 | 
						|
      - '.github/**'
 | 
						|
      - '!.github/workflows/mac_packaged.yml'
 | 
						|
      - 'lib/xdg/**'
 | 
						|
      - 'snap/**'
 | 
						|
      - 'Telegram/build/**'
 | 
						|
      - 'Telegram/Resources/uwp/**'
 | 
						|
      - 'Telegram/Resources/winrc/**'
 | 
						|
      - 'Telegram/SourceFiles/platform/win/**'
 | 
						|
      - 'Telegram/SourceFiles/platform/linux/**'
 | 
						|
      - 'Telegram/configure.bat'
 | 
						|
 | 
						|
jobs:
 | 
						|
 | 
						|
  macos:
 | 
						|
    name: MacOS
 | 
						|
    runs-on: macos-13
 | 
						|
 | 
						|
    strategy:
 | 
						|
      matrix:
 | 
						|
        defines:
 | 
						|
          - ""
 | 
						|
 | 
						|
    env:
 | 
						|
      GIT: "https://github.com"
 | 
						|
      OPENALDIR: "/usr/local/opt/openal-soft"
 | 
						|
      UPLOAD_ARTIFACT: "false"
 | 
						|
      ONLY_CACHE: "false"
 | 
						|
      MANUAL_CACHING: "1"
 | 
						|
      AUTO_CACHING: "1"
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Get repository name.
 | 
						|
        run: echo "REPO_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
 | 
						|
 | 
						|
      - name: Clone.
 | 
						|
        uses: actions/checkout@v3.1.0
 | 
						|
        with:
 | 
						|
          submodules: recursive
 | 
						|
          path: ${{ env.REPO_NAME }}
 | 
						|
 | 
						|
      - name: First set up.
 | 
						|
        run: |
 | 
						|
          brew update
 | 
						|
          brew upgrade || true
 | 
						|
          brew install autoconf automake boost cmake ffmpeg openal-soft openssl opus ninja pkg-config python qt yasm xz
 | 
						|
          sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
 | 
						|
 | 
						|
          xcodebuild -version > CACHE_KEY.txt
 | 
						|
          brew list --versions >> CACHE_KEY.txt
 | 
						|
          echo $MANUAL_CACHING >> CACHE_KEY.txt
 | 
						|
          echo "$GITHUB_WORKSPACE" >> CACHE_KEY.txt
 | 
						|
          if [ "$AUTO_CACHING" = "1" ]; then
 | 
						|
            thisFile=$REPO_NAME/.github/workflows/mac_packaged.yml
 | 
						|
            echo `md5 -q $thisFile` >> CACHE_KEY.txt
 | 
						|
          fi
 | 
						|
          echo "CACHE_KEY=`md5 -q CACHE_KEY.txt`" >> $GITHUB_ENV
 | 
						|
 | 
						|
          echo "LibrariesPath=`pwd`" >> $GITHUB_ENV
 | 
						|
 | 
						|
          curl -o tg_owt-version.json https://api.github.com/repos/desktop-app/tg_owt/git/refs/heads/master
 | 
						|
 | 
						|
      - name: RNNoise.
 | 
						|
        run: |
 | 
						|
          cd $LibrariesPath
 | 
						|
 | 
						|
          git clone --depth=1 https://gitlab.xiph.org/xiph/rnnoise.git
 | 
						|
          cd rnnoise
 | 
						|
          ./autogen.sh
 | 
						|
          ./configure --disable-examples --disable-doc
 | 
						|
          make -j$(sysctl -n hw.logicalcpu)
 | 
						|
          make install
 | 
						|
 | 
						|
      - name: WebRTC cache.
 | 
						|
        id: cache-webrtc
 | 
						|
        uses: actions/cache@v3.0.11
 | 
						|
        with:
 | 
						|
          path: ${{ env.LibrariesPath }}/tg_owt
 | 
						|
          key: ${{ runner.OS }}-webrtc-${{ env.CACHE_KEY }}-${{ hashFiles('**/tg_owt-version.json') }}
 | 
						|
      - name: WebRTC.
 | 
						|
        if: steps.cache-webrtc.outputs.cache-hit != 'true'
 | 
						|
        run: |
 | 
						|
          cd $LibrariesPath
 | 
						|
 | 
						|
          git clone --recursive --depth=1 $GIT/desktop-app/tg_owt.git
 | 
						|
          cd tg_owt
 | 
						|
 | 
						|
          cmake -B build . -GNinja -DCMAKE_BUILD_TYPE=Debug
 | 
						|
          cmake --build build --parallel
 | 
						|
 | 
						|
      - name: Telegram Desktop build.
 | 
						|
        if: env.ONLY_CACHE == 'false'
 | 
						|
        env:
 | 
						|
          tg_owt_DIR: ${{ env.LibrariesPath }}/tg_owt/build
 | 
						|
        run: |
 | 
						|
          cd $REPO_NAME
 | 
						|
 | 
						|
          DEFINE=""
 | 
						|
          if [ -n "${{ matrix.defines }}" ]; then
 | 
						|
            DEFINE="-D ${{ matrix.defines }}=ON"
 | 
						|
            echo Define from matrix: $DEFINE
 | 
						|
            echo "ARTIFACT_NAME=Telegram_${{ matrix.defines }}" >> $GITHUB_ENV
 | 
						|
          else
 | 
						|
            echo "ARTIFACT_NAME=Telegram" >> $GITHUB_ENV
 | 
						|
          fi
 | 
						|
 | 
						|
          cmake -Bbuild -GNinja . \
 | 
						|
          -DCMAKE_BUILD_TYPE=Debug \
 | 
						|
          -DCMAKE_FIND_FRAMEWORK=LAST \
 | 
						|
          -DTDESKTOP_API_TEST=ON \
 | 
						|
          -DDESKTOP_APP_USE_PACKAGED_LAZY=ON \
 | 
						|
          $DEFINE
 | 
						|
 | 
						|
          cmake --build build --parallel
 | 
						|
 | 
						|
          cd build
 | 
						|
          macdeployqt Telegram.app
 | 
						|
          codesign --remove-signature Telegram.app
 | 
						|
 | 
						|
          mkdir dmgsrc
 | 
						|
          mv Telegram.app dmgsrc
 | 
						|
          hdiutil create -volname Telegram -srcfolder dmgsrc -ov -format UDZO Telegram.dmg
 | 
						|
 | 
						|
      - name: Move artifact.
 | 
						|
        if: env.UPLOAD_ARTIFACT == 'true'
 | 
						|
        run: |
 | 
						|
          cd $REPO_NAME/build
 | 
						|
          mkdir artifact
 | 
						|
          mv Telegram.dmg artifact/
 | 
						|
      - uses: actions/upload-artifact@master
 | 
						|
        if: env.UPLOAD_ARTIFACT == 'true'
 | 
						|
        name: Upload artifact.
 | 
						|
        with:
 | 
						|
          name: ${{ env.ARTIFACT_NAME }}
 | 
						|
          path: ${{ env.REPO_NAME }}/build/artifact/
 |