name: CI

on: 
  push:
    branches:
      - main
      - mac-candidate
      - mac-release
      - ios-candidate
      - ios-release

jobs:
  build:

    runs-on: macOS-latest
    strategy: 
      matrix:
        run-config:
          - { scheme: 'NetNewsWire', destination: 'platform=macOS'}
          - { scheme: 'NetNewsWire-iOS', destination: 'platform=iOS Simulator,OS=14.0,name=iPhone 11' }
    
    steps:
    - name: Checkout Project
      uses: actions/checkout@v1
      with: 
        submodules: recursive

    - name: List Available Applications
      run: ls /Applications

    - name: Switch to Xcode 12
      run: sudo xcode-select -s /Applications/Xcode_12.app

    - name: Show Build Version
      run: xcodebuild -version

    - name: Show Build Settings
      run: xcodebuild -showBuildSettings
      
    - name: Show Build SDK
      run: xcodebuild -showsdks
    
    - name: Show Available Destinations
      env:
        scheme: ${{ matrix.run-config['scheme'] }}    
      run: xcodebuild -scheme ${scheme} -showdestinations
    
    - name: Run Build
      env:
          ENCRYPTION_SECRET: ${{ secrets.ENCRYPTION_SECRET }}
          KEY_SECRET: ${{ secrets.KEY_SECRET }}
          SCHEME: ${{ matrix.run-config['scheme'] }}
          DESTINATION: ${{ matrix.run-config['destination'] }}

      run: buildscripts/ci-build.sh

    - name: Notify Slack
      uses: 8398a7/action-slack@v2.4.2
      with:
        status: ${{ job.status }}
        author_name: GitHub Actions CI
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
      if: failure()