name: CI/PR

on: [push, pull_request]

env:
  DEVELOPER: 1

jobs:
  ci-config:
    runs-on: ubuntu-latest
    outputs:
      enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}
    steps:
      - name: try to clone ci-config branch
        run: |
          git -c protocol.version=2 clone \
            --no-tags \
            --single-branch \
            -b ci-config \
            --depth 1 \
            --no-checkout \
            --filter=blob:none \
            https://github.com/${{ github.repository }} \
            config-repo &&
          cd config-repo &&
          git checkout HEAD -- ci/config || : ignore
      - id: check-ref
        name: check whether CI is enabled for ref
        run: |
          enabled=yes
          if test -x config-repo/ci/config/allow-ref &&
             ! config-repo/ci/config/allow-ref '${{ github.ref }}'
          then
            enabled=no
          fi
          echo "::set-output name=enabled::$enabled"
      - name: skip if the commit or tree was already tested
        id: skip-if-redundant
        uses: actions/github-script@v3
        if: steps.check-ref.outputs.enabled == 'yes'
        with:
          github-token: ${{secrets.GITHUB_TOKEN}}
          script: |
            // Figure out workflow ID, commit and tree
            const { data: run } = await github.actions.getWorkflowRun({
              owner: context.repo.owner,
              repo: context.repo.repo,
              run_id: context.runId,
            });
            const workflow_id = run.workflow_id;
            const head_sha = run.head_sha;
            const tree_id = run.head_commit.tree_id;

            // See whether there is a successful run for that commit or tree
            const { data: runs } = await github.actions.listWorkflowRuns({
              owner: context.repo.owner,
              repo: context.repo.repo,
              per_page: 500,
              status: 'success',
              workflow_id,
            });
            for (const run of runs.workflow_runs) {
              if (head_sha === run.head_sha) {
                core.warning(`Successful run for the commit ${head_sha}: ${run.html_url}`);
                core.setOutput('enabled', ' but skip');
                break;
              }
              if (tree_id === run.head_commit.tree_id) {
                core.warning(`Successful run for the tree ${tree_id}: ${run.html_url}`);
                core.setOutput('enabled', ' but skip');
                break;
              }
            }

  windows-build:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v1
    - name: download git-sdk-64-minimal
      shell: bash
      run: |
        ## Get artifact
        urlbase=https://dev.azure.com/git-for-windows/git/_apis/build/builds
        id=$(curl "$urlbase?definitions=22&statusFilter=completed&resultFilter=succeeded&\$top=1" |
          jq -r ".value[] | .id")
        download_url="$(curl "$urlbase/$id/artifacts" |
          jq -r '.value[] | select(.name == "git-sdk-64-minimal").resource.downloadUrl')"
        curl --connect-timeout 10 --retry 5 --retry-delay 0 --retry-max-time 240 \
          -o artifacts.zip "$download_url"

        ## Unzip and remove the artifact
        unzip artifacts.zip
        rm artifacts.zip
    - name: build
      shell: powershell
      env:
        HOME: ${{runner.workspace}}
        MSYSTEM: MINGW64
        NO_PERL: 1
      run: |
        & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
        printf '%s\n' /git-sdk-64-minimal/ >>.git/info/exclude

          ci/make-test-artifacts.sh artifacts
        "@
    - name: upload build artifacts
      uses: actions/upload-artifact@v1
      with:
        name: windows-artifacts
        path: artifacts
    - name: upload git-sdk-64-minimal
      uses: actions/upload-artifact@v1
      with:
        name: git-sdk-64-minimal
        path: git-sdk-64-minimal
  windows-test:
    runs-on: windows-latest
    needs: [windows-build]
    strategy:
      matrix:
        nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    steps:
    - uses: actions/checkout@v1
    - name: download build artifacts
      uses: actions/download-artifact@v1
      with:
        name: windows-artifacts
        path: ${{github.workspace}}
    - name: extract build artifacts
      shell: bash
      run: tar xf artifacts.tar.gz
    - name: download git-sdk-64-minimal
      uses: actions/download-artifact@v1
      with:
        name: git-sdk-64-minimal
        path: ${{github.workspace}}/git-sdk-64-minimal/
    - name: test
      shell: powershell
      run: |
        & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
          # Let Git ignore the SDK
          printf '%s\n' /git-sdk-64-minimal/ >>.git/info/exclude

          ci/run-test-slice.sh ${{matrix.nr}} 10
        "@
    - name: ci/print-test-failures.sh
      if: failure()
      shell: powershell
      run: |
        & .\git-sdk-64-minimal\usr\bin\bash.exe -lc ci/print-test-failures.sh
    - name: Upload failed tests' directories
      if: failure() && env.FAILED_TEST_ARTIFACTS != ''
      uses: actions/upload-artifact@v1
      with:
        name: failed-tests-windows
        path: ${{env.FAILED_TEST_ARTIFACTS}}
  vs-build:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    env:
      MSYSTEM: MINGW64
      NO_PERL: 1
      GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v1
    - name: download git-sdk-64-minimal
      shell: bash
      run: |
        ## Get artifact
        urlbase=https://dev.azure.com/git-for-windows/git/_apis/build/builds
        id=$(curl "$urlbase?definitions=22&statusFilter=completed&resultFilter=succeeded&\$top=1" |
          jq -r ".value[] | .id")
        download_url="$(curl "$urlbase/$id/artifacts" |
          jq -r '.value[] | select(.name == "git-sdk-64-minimal").resource.downloadUrl')"
        curl --connect-timeout 10 --retry 5 --retry-delay 0 --retry-max-time 240 \
          -o artifacts.zip "$download_url"

        ## Unzip and remove the artifact
        unzip artifacts.zip
        rm artifacts.zip
    - name: download vcpkg artifacts
      shell: powershell
      run: |
        $urlbase = "https://dev.azure.com/git/git/_apis/build/builds"
        $id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=9&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
        $downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[0].resource.downloadUrl
        (New-Object Net.WebClient).DownloadFile($downloadUrl, "compat.zip")
        Expand-Archive compat.zip -DestinationPath . -Force
        Remove-Item compat.zip
    - name: add msbuild to PATH
      uses: microsoft/setup-msbuild@v1.0.0
    - name: copy dlls to root
      shell: powershell
      run: |
        & compat\vcbuild\vcpkg_copy_dlls.bat release
        if (!$?) { exit(1) }
    - name: generate Visual Studio solution
      shell: bash
      run: |
        cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \
        -DIconv_LIBRARY=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows/lib/libiconv.lib -DIconv_INCLUDE_DIR=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows/include \
        -DMSGFMT_EXE=`pwd`/git-sdk-64-minimal/mingw64/bin/msgfmt.exe -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON
    - name: MSBuild
      run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142
    - name: bundle artifact tar
      shell: powershell
      env:
        MSVC: 1
        VCPKG_ROOT: ${{github.workspace}}\compat\vcbuild\vcpkg
      run: |
        & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
          mkdir -p artifacts &&
          eval \"`$(make -n artifacts-tar INCLUDE_DLLS_IN_ARTIFACTS=YesPlease ARTIFACTS_DIRECTORY=artifacts 2>&1 | grep ^tar)\"
        "@
    - name: upload build artifacts
      uses: actions/upload-artifact@v1
      with:
        name: vs-artifacts
        path: artifacts
  vs-test:
    runs-on: windows-latest
    needs: [vs-build, windows-build]
    strategy:
      matrix:
        nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    steps:
    - uses: actions/checkout@v1
    - name: download git-sdk-64-minimal
      uses: actions/download-artifact@v1
      with:
        name: git-sdk-64-minimal
        path: ${{github.workspace}}/git-sdk-64-minimal/
    - name: download build artifacts
      uses: actions/download-artifact@v1
      with:
        name: vs-artifacts
        path: ${{github.workspace}}
    - name: extract build artifacts
      shell: bash
      run: tar xf artifacts.tar.gz
    - name: test
      shell: powershell
      env:
        MSYSTEM: MINGW64
        NO_SVN_TESTS: 1
        GIT_TEST_SKIP_REBASE_P: 1
      run: |
        & .\git-sdk-64-minimal\usr\bin\bash.exe -lc @"
          # Let Git ignore the SDK and the test-cache
          printf '%s\n' /git-sdk-64-minimal/ /test-cache/ >>.git/info/exclude

          ci/run-test-slice.sh ${{matrix.nr}} 10
        "@
    - name: ci/print-test-failures.sh
      if: failure()
      shell: powershell
      run: |
        & .\git-sdk-64-minimal\usr\bin\bash.exe -lc ci/print-test-failures.sh
    - name: Upload failed tests' directories
      if: failure() && env.FAILED_TEST_ARTIFACTS != ''
      uses: actions/upload-artifact@v1
      with:
        name: failed-tests-windows
        path: ${{env.FAILED_TEST_ARTIFACTS}}
  regular:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    strategy:
      matrix:
        vector:
          - jobname: linux-clang
            cc: clang
            pool: ubuntu-latest
          - jobname: linux-gcc
            cc: gcc
            pool: ubuntu-latest
          - jobname: osx-clang
            cc: clang
            pool: macos-latest
          - jobname: osx-gcc
            cc: gcc
            pool: macos-latest
          - jobname: GETTEXT_POISON
            cc: gcc
            pool: ubuntu-latest
    env:
      CC: ${{matrix.vector.cc}}
      jobname: ${{matrix.vector.jobname}}
    runs-on: ${{matrix.vector.pool}}
    steps:
    - uses: actions/checkout@v1
    - run: ci/install-dependencies.sh
    - run: ci/run-build-and-tests.sh
    - run: ci/print-test-failures.sh
      if: failure()
    - name: Upload failed tests' directories
      if: failure() && env.FAILED_TEST_ARTIFACTS != ''
      uses: actions/upload-artifact@v1
      with:
        name: failed-tests-${{matrix.vector.jobname}}
        path: ${{env.FAILED_TEST_ARTIFACTS}}
  dockerized:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    strategy:
      matrix:
        vector:
        - jobname: linux-musl
          image: alpine
        - jobname: Linux32
          image: daald/ubuntu32:xenial
    env:
      jobname: ${{matrix.vector.jobname}}
    runs-on: ubuntu-latest
    container: ${{matrix.vector.image}}
    steps:
    - uses: actions/checkout@v1
    - run: ci/install-docker-dependencies.sh
    - run: ci/run-build-and-tests.sh
    - run: ci/print-test-failures.sh
      if: failure()
    - name: Upload failed tests' directories
      if: failure() && env.FAILED_TEST_ARTIFACTS != ''
      uses: actions/upload-artifact@v1
      with:
        name: failed-tests-${{matrix.vector.jobname}}
        path: ${{env.FAILED_TEST_ARTIFACTS}}
  static-analysis:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    env:
      jobname: StaticAnalysis
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - run: ci/install-dependencies.sh
    - run: ci/run-static-analysis.sh
  documentation:
    needs: ci-config
    if: needs.ci-config.outputs.enabled == 'yes'
    env:
      jobname: Documentation
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - run: ci/install-dependencies.sh
    - run: ci/test-documentation.sh
