name: CI

# Controls when the action will run. 
on:
  # Triggers the workflow on push or pull request events
  push:
  pull_request:
  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  build:
    strategy:
      matrix:
        xcode: [ "12.4" ]
        platform: [ "macos", "maccat", "ios", "tvos" ]
        os: [ "macos-latest" ]
        upload_artifacts: [ true ]
        # additional specific configurations
        include:
          # "Legacy" Xcode 11.7 macOS build
          - xcode: "11.7"
            platform: "macos"
            os: "macos-latest" 
            upload_artifacts: false
      fail-fast: false

    name: 'MoltenVK (Xcode ${{ matrix.xcode }} - ${{ matrix.platform }})'
    
    # See: https://docs.github.com/en/free-pro-team@latest/actions/reference/specifications-for-github-hosted-runners#supported-runners-and-hardware-resources
    runs-on: ${{ matrix.os }}
    
    env:
      # See: https://github.com/actions/virtual-environments/tree/main/images/macos
      XCODE_DEV_PATH: "/Applications/Xcode_${{ matrix.xcode }}.app/Contents/Developer"

    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      - name: Select Xcode version
        run: sudo xcode-select -switch "${XCODE_DEV_PATH}"

      - name: Prep
        id: prep
        run: |
          echo "Get Xcode version info"
          XCODE_VERSION="$(xcodebuild -version)"
          echo "${XCODE_VERSION}"
          XCODE_VERSION="$(echo "${XCODE_VERSION}" | tr '\t\r\n ' '_')"
          echo "${XCODE_VERSION}"
          echo "::set-output name=XCODE_VERSION::${XCODE_VERSION}"

      - name: Cache Dependencies
        id: cache-dependencies
        if: success() && !(github.event_name == 'push' && contains(github.ref, 'refs/tags/')) # never cache dependencies for pushed tags
        uses: actions/cache@v2
        with:
          path: |
            External/build
            !External/build/Intermediates
          key: ${{ runner.os }}-${{ steps.prep.outputs.XCODE_VERSION }}-${{ matrix.platform }}-${{ hashFiles('fetchDependencies','ExternalRevisions/**','ExternalDependencies.xcodeproj/**','Scripts/**') }}

      - name: Fetch Dependencies (Use Built Cache)
        if: steps.cache-dependencies.outputs.cache-hit == 'true'
        run: |
          ./fetchDependencies -v --none

      - name: Fetch Dependencies
        if: steps.cache-dependencies.outputs.cache-hit != 'true'
        run: |
          ./fetchDependencies -v --${{ matrix.platform }}

      - name: Output Dependency Build Logs on Failure
        if: failure()
        run: cat "dependenciesbuild.log"

      - name: Build MoltenVK
        run: |
          make ${{ matrix.platform }}

      - name: Output MoltenVK Build Logs on Failure
        if: failure()
        run: |
          if [ -f "xcodebuild.log" ]; then
            cat "xcodebuild.log"
          fi

      - name: Tar Artifacts
        if: success() && matrix.upload_artifacts == true
        # See: https://github.com/actions/upload-artifact#maintaining-file-permissions-and-case-sensitive-files
        run: tar -cvf "${{ matrix.platform }}.tar" Package/Release/

      - name: Upload Artifacts
        if: success() && matrix.upload_artifacts == true
        uses: actions/upload-artifact@v2
        with:
          name: ${{ matrix.platform }}
          path: "${{ matrix.platform }}.tar"
