env:
  CIRRUS_CLONE_DEPTH: 0 # Unshallow clone to obtain proper GIT_VERSION
  BUILD_REPOSITORY_NAME: $CIRRUS_REPO_FULL_NAME
  SYSTEM_PULLREQUEST_SOURCEBRANCH: $CIRRUS_BRANCH
  SYSTEM_PULLREQUEST_PULLREQUESTID: $CIRRUS_PR
  BUILD_SOURCEVERSION: $CIRRUS_CHANGE_IN_REPO
  BUILD_SOURCEBRANCHNAME: $CIRRUS_BRANCH
  RPCS3_TOKEN: ENCRYPTED[100ebb8e3552bf2021d0ef55dccda3e58d27be5b6cab0b0b92843ef490195d3c4edaefa087e4a3b425caa6392300b9b1]
  QT_VER_MAIN: '6'
  QT_VER: '6.8.1'

# windows_task:
#   matrix:
#     - name: Cirrus Windows
#       windows_container:
#         image: cirrusci/windowsservercore:visualstudio2019
#         cpu: 8
#         memory: 16G
#   env:
#     CIRRUS_SHELL: "bash"
#     COMPILER: msvc
#     BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}\artifacts\
#     QT_VER_MSVC: 'msvc2022'
#     QT_DATE: '202411221531'
#     QTDIR: C:\Qt\${QT_VER}\${QT_VER_MSVC}_64
#     VULKAN_VER: '1.3.268.0'
#     VULKAN_SDK_SHA: '8459ef49bd06b697115ddd3d97c9aec729e849cd775f5be70897718a9b3b9db5'
#     VULKAN_SDK: C:\VulkanSDK\${VULKAN_VER}
#     CACHE_DIR: "./cache"
#     UPLOAD_COMMIT_HASH: 7d09e3be30805911226241afbb14f8cdc2eb054e
#     UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-win"
#   deps_cache:
#     folder: "./cache"
#   #obj_cache:
#   #  folder: "./tmp"
#   #obj2_cache:
#   #  folder: "./rpcs3/x64"
#   setup_script:
#     - './.ci/get_keys-windows.sh'
#     - './.ci/setup-windows.sh'
#   rpcs3_script:
#     - export PATH=${PATH}:"C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin"
#     - msbuild.exe rpcs3.sln //p:Configuration=Release //m
#   deploy_script:
#     - mkdir artifacts
#     - source './.ci/export-cirrus-vars.sh'
#     - './.ci/deploy-windows.sh'
#   artifacts:
#     name: Artifact
#     path: "*.7z*"
#   push_script: |
#     if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ]; then
#       source './.ci/export-cirrus-vars.sh'
#       './.ci/github-upload.sh'
#     fi;

# linux_task:
#   container:
#     image: rpcs3/rpcs3-ci-focal:1.9
#     cpu: 4
#     memory: 16G
#   env:
#     BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}/artifacts
#     ARTDIR: ${CIRRUS_WORKING_DIR}/artifacts/
#     CCACHE_DIR: "/tmp/ccache_dir"
#     CCACHE_MAXSIZE: 300M
#     CI_HAS_ARTIFACTS: true
#     UPLOAD_COMMIT_HASH: d812f1254a1157c80fd402f94446310560f54e5f
#     UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux"
#     DEPLOY_APPIMAGE: true
#     APPDIR: "./appdir"
#     RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
#   ccache_cache:
#     folder: "/tmp/ccache_dir"
#   matrix:
#     - name: Cirrus Linux GCC
#       env:
#         COMPILER: gcc
#       gcc_script:
#         - mkdir artifacts
#         - ".ci/build-linux.sh"
#     - name: Cirrus Linux Clang
#       env:
#         COMPILER: clang
#       clang_script:
#         - mkdir artifacts
#         - ".ci/build-linux.sh"
#   artifacts:
#     name: Artifact
#     path: "artifacts/*"
#   push_script: |
#     if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ] && [ "$COMPILER" = "gcc" ]; then
#       COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
#       COMM_COUNT=$(git rev-list --count HEAD)
#       COMM_HASH=$(git rev-parse --short=8 HEAD)

#       export AVVER="${COMM_TAG}-${COMM_COUNT}"

#       .ci/github-upload.sh
#     fi;

freebsd_task:
  matrix:
    - name: Cirrus FreeBSD
      freebsd_instance:
        image_family: freebsd-13-3
        cpu: 8
        memory: 8G
  env:
    CCACHE_MAXSIZE: 300M # 3x clean build, rounded
    CCACHE_DIR: /tmp/ccache_dir
  ccache_cache:
    folder: /tmp/ccache_dir
  install_script: "sh -ex ./.ci/install-freebsd.sh"
  script: "./.ci/build-freebsd.sh"

linux_aarch64_task:
  env:
    BUILD_ARTIFACTSTAGINGDIRECTORY: ${CIRRUS_WORKING_DIR}/artifacts
    ARTDIR: ${CIRRUS_WORKING_DIR}/artifacts/
    CCACHE_DIR: "/tmp/ccache_dir"
    CCACHE_MAXSIZE: 300M
    CI_HAS_ARTIFACTS: true
    UPLOAD_COMMIT_HASH: a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1
    UPLOAD_REPO_FULL_NAME: "rpcs3/rpcs3-binaries-linux-arm64"
    DEPLOY_APPIMAGE: true
    APPDIR: "./appdir"
    RELEASE_MESSAGE: "../GitHubReleaseMessage.txt"
    COMPILER: clang
  ccache_cache:
    folder: "/tmp/ccache_dir"
  matrix:
    - name: Cirrus Linux AArch64 Clang
      arm_container:
        image: 'docker.io/rpcs3/rpcs3-ci-focal-aarch64:1.0'
        cpu: 8
        memory: 8G
      clang_script:
        - mkdir artifacts
        - "sh -ex ./.ci/build-linux-aarch64.sh"
  artifacts:
    name: Artifact
    path: "artifacts/*"
  push_script: |
    if [ "$CIRRUS_REPO_OWNER" = "RPCS3" ] && [ -z "$CIRRUS_PR" ] && [ "$CIRRUS_BRANCH" = "master" ]; then
      COMM_TAG=$(awk '/version{.*}/ { printf("%d.%d.%d", $5, $6, $7) }' ./rpcs3/rpcs3_version.cpp)
      COMM_COUNT=$(git rev-list --count HEAD)
      COMM_HASH=$(git rev-parse --short=8 HEAD)
      export AVVER="${COMM_TAG}-${COMM_COUNT}"
      .ci/github-upload.sh
    fi;
