name: Flutter Nightly MacOS Arm64 Build

on:
  #schedule:
    # schedule build every night
  #  - cron: "0/6 * * * *"
  workflow_dispatch:

env:
  CARGO_NDK_VERSION: "3.1.2"
  LLVM_VERSION: "15.0.6"
  FLUTTER_VERSION: "3.16.9"
  FLUTTER_RUST_BRIDGE_VERSION: "1.80.1"
  # for arm64 linux because official Dart SDK does not work
  FLUTTER_ELINUX_VERSION: "3.16.9"
  FLUTTER_ELINUX_COMMIT_ID: "c02bd16e1630f5bd690b85c5c2456ac1920e25af"
  TAG_NAME: "nightly"
  VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
  # vcpkg version: 2023.10.19
  # for multiarch gcc compatibility
  VCPKG_COMMIT_ID: "8eb57355a4ffb410a2e94c07b4dca2dffbee8e50"
  VERSION: "1.2.4"
  NDK_VERSION: "r26b"
  #signing keys env variable checks
  ANDROID_SIGNING_KEY: '${{ secrets.ANDROID_SIGNING_KEY }}'
  MACOS_P12_BASE64: '${{ secrets.MACOS_P12_BASE64 }}'
  # To make a custom build with your own servers set the below secret values
  RS_PUB_KEY: '${{ secrets.RS_PUB_KEY }}'
  RENDEZVOUS_SERVER: '${{ secrets.RENDEZVOUS_SERVER }}'
  API_SERVER: '${{ secrets.API_SERVER }}'
  UPLOAD_ARTIFACT: true
  SIGN_BASE_URL: "${{ secrets.SIGN_BASE_URL }}"

jobs:
  build-for-macOS-arm64:
    name: build-for-macOS-arm64
    runs-on: [self-hosted, macOS, ARM64]
    steps:
      #- name: Import the codesign cert
      #  if: env.MACOS_P12_BASE64 != null
      #  uses: apple-actions/import-codesign-certs@v1
      #  continue-on-error: true
      #  with:
      #    p12-file-base64: ${{ secrets.MACOS_P12_BASE64 }}
      #    p12-password: ${{ secrets.MACOS_P12_PASSWORD }}
      #    keychain: rustdesk
          
      #- name: Check sign and import sign key
      #  if: env.MACOS_P12_BASE64 != null
      #  run: |
      #    security default-keychain -s rustdesk.keychain
      #    security find-identity -v
          
      - name: Run
        shell: bash
        run: |
          cd /opt/build
          #./update_mac_template.sh
          #security default-keychain -s rustdesk.keychain
          #security unlock-keychain -p ${{ secrets.MACOS_P12_PASSWORD }} rustdesk.keychain
          ./agent.sh
