Revision 865406bc5426d5196935e37a3a5fde9c843c3e96 authored by Philip Oakley on 29 July 2019, 20:08:03 UTC, committed by Junio C Hamano on 29 July 2019, 21:51:42 UTC
Since 4b623d8 (MSVC: link in invalidcontinue.obj for better POSIX
compatibility, 2014-03-29), invalidcontinue.obj is linked in the MSVC
build, but it was not parsed correctly by the buildsystem. Ignore it, as
it is known to Visual Studio and will be handled elsewhere.

Also only substitute filenames ending with .o when generating the
source .c filename, otherwise we would start to expect .cbj files to
generate .obj files (which are not generated by our build)...

In the future there may be source files that produce .obj files
so keep the two issues (.obj files with & without source files)
separate.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Duncan Smart <duncan.smart@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 158471d
Raw File
azure-pipelines.yml
resources:
- repo: self
  fetchDepth: 1

jobs:
- job: windows_build
  displayName: Windows Build
  condition: succeeded()
  pool: Hosted
  timeoutInMinutes: 240
  steps:
  - powershell: |
      if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
        net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no
        cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\
      }
    displayName: 'Mount test-cache'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - powershell: |
      $urlbase = "https://dev.azure.com/git-for-windows/git/_apis/build/builds"
      $id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=22&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
      $downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[1].resource.downloadUrl
      (New-Object Net.WebClient).DownloadFile($downloadUrl,"git-sdk-64-minimal.zip")
      Expand-Archive git-sdk-64-minimal.zip -DestinationPath . -Force
      Remove-Item git-sdk-64-minimal.zip

      # Let Git ignore the SDK and the test-cache
      "/git-sdk-64-minimal/`n/test-cache/`n" | Out-File -NoNewLine -Encoding ascii -Append "$(Build.SourcesDirectory)\.git\info\exclude"
    displayName: 'Download git-sdk-64-minimal'
  - powershell: |
      & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
        ci/make-test-artifacts.sh artifacts
      "@
      if (!$?) { exit(1) }
    displayName: Build
    env:
      HOME: $(Build.SourcesDirectory)
      MSYSTEM: MINGW64
      DEVELOPER: 1
      NO_PERL: 1
  - task: PublishPipelineArtifact@0
    displayName: 'Publish Pipeline Artifact: test artifacts'
    inputs:
      artifactName: 'windows-artifacts'
      targetPath: '$(Build.SourcesDirectory)\artifacts'
  - task: PublishPipelineArtifact@0
    displayName: 'Publish Pipeline Artifact: git-sdk-64-minimal'
    inputs:
      artifactName: 'git-sdk-64-minimal'
      targetPath: '$(Build.SourcesDirectory)\git-sdk-64-minimal'
  - powershell: |
      if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
        cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
      }
    displayName: 'Unmount test-cache'
    condition: true
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)

- job: windows_test
  displayName: Windows Test
  dependsOn: windows_build
  condition: succeeded()
  pool: Hosted
  timeoutInMinutes: 240
  strategy:
    parallel: 10
  steps:
  - powershell: |
      if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
        net use s: \\gitfileshare.file.core.windows.net\test-cache "$GITFILESHAREPWD" /user:AZURE\gitfileshare /persistent:no
        cmd /c mklink /d "$(Build.SourcesDirectory)\test-cache" S:\
      }
    displayName: 'Mount test-cache'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: DownloadPipelineArtifact@0
    displayName: 'Download Pipeline Artifact: test artifacts'
    inputs:
      artifactName: 'windows-artifacts'
      targetPath: '$(Build.SourcesDirectory)'
  - task: DownloadPipelineArtifact@0
    displayName: 'Download Pipeline Artifact: git-sdk-64-minimal'
    inputs:
      artifactName: 'git-sdk-64-minimal'
      targetPath: '$(Build.SourcesDirectory)\git-sdk-64-minimal'
  - powershell: |
      & git-sdk-64-minimal\usr\bin\bash.exe -lc @"
        test -f artifacts.tar.gz || {
          echo No test artifacts found\; skipping >&2
          exit 0
        }
        tar xf artifacts.tar.gz || exit 1

        # 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 `$SYSTEM_JOBPOSITIONINPHASE `$SYSTEM_TOTALJOBSINPHASE || {
          ci/print-test-failures.sh
          exit 1
        }
      "@
      if (!$?) { exit(1) }
    displayName: 'Test (parallel)'
    env:
      HOME: $(Build.SourcesDirectory)
      MSYSTEM: MINGW64
      NO_SVN_TESTS: 1
      GIT_TEST_SKIP_REBASE_P: 1
  - powershell: |
      if ("$GITFILESHAREPWD" -ne "" -and "$GITFILESHAREPWD" -ne "`$`(gitfileshare.pwd)") {
        cmd /c rmdir "$(Build.SourcesDirectory)\test-cache"
      }
    displayName: 'Unmount test-cache'
    condition: true
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'windows'
      platform: Windows
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: linux_clang
  displayName: linux-clang
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       sudo apt-get update &&
       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2-bin &&

       export CC=clang || exit 1

       ci/install-dependencies.sh || exit 1
       ci/run-build-and-tests.sh || {
           ci/print-test-failures.sh
           exit 1
       }

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-build-and-tests.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'linux-clang'
      platform: Linux
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: linux_gcc
  displayName: linux-gcc
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       sudo add-apt-repository ppa:ubuntu-toolchain-r/test &&
       sudo apt-get update &&
       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev apache2 language-pack-is git-svn gcc-8 || exit 1

       ci/install-dependencies.sh || exit 1
       ci/run-build-and-tests.sh || {
           ci/print-test-failures.sh
           exit 1
       }

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-build-and-tests.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'linux-gcc'
      platform: Linux
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: osx_clang
  displayName: osx-clang
  condition: succeeded()
  pool: Hosted macOS
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       export CC=clang

       ci/install-dependencies.sh || exit 1
       ci/run-build-and-tests.sh || {
           ci/print-test-failures.sh
           exit 1
       }

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-build-and-tests.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'osx-clang'
      platform: macOS
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: osx_gcc
  displayName: osx-gcc
  condition: succeeded()
  pool: Hosted macOS
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       ci/install-dependencies.sh || exit 1
       ci/run-build-and-tests.sh || {
           ci/print-test-failures.sh
           exit 1
       }

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-build-and-tests.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'osx-gcc'
      platform: macOS
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: gettext_poison
  displayName: GETTEXT_POISON
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       sudo apt-get update &&
       sudo apt-get -y install git gcc make libssl-dev libcurl4-openssl-dev libexpat-dev tcl tk gettext git-email zlib1g-dev &&

       export jobname=GETTEXT_POISON || exit 1

       ci/run-build-and-tests.sh || {
           ci/print-test-failures.sh
           exit 1
       }

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-build-and-tests.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'gettext-poison'
      platform: Linux
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: linux32
  displayName: Linux32
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       res=0
       sudo AGENT_OS="$AGENT_OS" BUILD_BUILDNUMBER="$BUILD_BUILDNUMBER" BUILD_REPOSITORY_URI="$BUILD_REPOSITORY_URI" BUILD_SOURCEBRANCH="$BUILD_SOURCEBRANCH" BUILD_SOURCEVERSION="$BUILD_SOURCEVERSION" SYSTEM_PHASENAME="$SYSTEM_PHASENAME" SYSTEM_TASKDEFINITIONSURI="$SYSTEM_TASKDEFINITIONSURI" SYSTEM_TEAMPROJECT="$SYSTEM_TEAMPROJECT" CC=$CC MAKEFLAGS="$MAKEFLAGS" bash -lxc ci/run-linux32-docker.sh || res=1

       sudo chmod a+r t/out/TEST-*.xml
       test ! -d t/failed-test-artifacts || sudo chmod a+r t/failed-test-artifacts

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || res=1
       exit $res
    displayName: 'ci/run-linux32-docker.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
  - task: PublishTestResults@2
    displayName: 'Publish Test Results **/TEST-*.xml'
    inputs:
      mergeTestResults: true
      testRunTitle: 'linux32'
      platform: Linux
      publishRunAttachments: false
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish trash directories of failed tests'
    condition: failed()
    inputs:
      PathtoPublish: t/failed-test-artifacts
      ArtifactName: failed-test-artifacts

- job: static_analysis
  displayName: StaticAnalysis
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       sudo apt-get update &&
       sudo apt-get install -y coccinelle &&

       export jobname=StaticAnalysis &&

       ci/run-static-analysis.sh || exit 1

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
    displayName: 'ci/run-static-analysis.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)

- job: documentation
  displayName: Documentation
  condition: succeeded()
  pool: Hosted Ubuntu 1604
  steps:
  - bash: |
       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || ci/mount-fileshare.sh //gitfileshare.file.core.windows.net/test-cache gitfileshare "$GITFILESHAREPWD" "$HOME/test-cache" || exit 1

       sudo apt-get update &&
       sudo apt-get install -y asciidoc xmlto asciidoctor &&

       export ALREADY_HAVE_ASCIIDOCTOR=yes. &&
       export jobname=Documentation &&

       ci/test-documentation.sh || exit 1

       test "$GITFILESHAREPWD" = '$(gitfileshare.pwd)' || sudo umount "$HOME/test-cache" || exit 1
    displayName: 'ci/test-documentation.sh'
    env:
      GITFILESHAREPWD: $(gitfileshare.pwd)
back to top