Skip to content
Snippets Groups Projects
.appveyor.yml 6.19 KiB
Newer Older
  • Learn to ignore specific revisions
  • Daniel Agar's avatar
    Daniel Agar committed
    version: '{branch}-{build}'
    
    build:
      verbosity: minimal
    
    
    environment:
      matrix:
    
    #  - BUILD: 'Debug'
    #    CONFIG: debug
    
    #    SHADOW_BUILD_DIR: C:\projects\qgroundcontrol\build_windows_debug
    
    Daniel Agar's avatar
    Daniel Agar committed
      - BUILD: 'Release'
        CONFIG: installer
    
        SHADOW_BUILD_DIR: C:\projects\qgroundcontrol\build_windows_install
    
    
    install:
      - git submodule update --init --recursive
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
      - call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
      - set PATH=C:\Qt\Tools\QtCreator\bin;C:\Qt\5.12.5\msvc2017_64\bin;%PATH%
    
      - mkdir %LOCALAPPDATA%\QtProject && copy test\qtlogging.ini %LOCALAPPDATA%\QtProject\
    
    Daniel Agar's avatar
    Daniel Agar committed
      - ps: |
          Write-Host "Installing GStreamer..." -ForegroundColor Cyan
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
          $msiPath = "$($env:USERPROFILE)\gstreamer-1.0-x86_64-1.14.4.msi"
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Downloading..."
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
          (New-Object Net.WebClient).DownloadFile('https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies/gstreamer-1.0-x86_64-1.14.4.msi', $msiPath)
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Installing..."
    
    Don Gagne's avatar
    Don Gagne committed
          cmd /c start /wait msiexec /package $msiPath /passive ADDLOCAL=ALL
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Installed" -ForegroundColor Green
      - ps: |
          Write-Host "Installing GStreamer dev..." -ForegroundColor Cyan
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
          $msiPath = "$($env:USERPROFILE)\gstreamer-1.0-devel-x86_64-1.14.4.msi"
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Downloading..."
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
          (New-Object Net.WebClient).DownloadFile('https://s3-us-west-2.amazonaws.com/qgroundcontrol/dependencies/gstreamer-1.0-devel-x86_64-1.14.4.msi', $msiPath)
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Installing..."
    
    Don Gagne's avatar
    Don Gagne committed
          cmd /c start /wait msiexec /package $msiPath /passive ADDLOCAL=ALL
    
    Daniel Agar's avatar
    Daniel Agar committed
          Write-Host "Installed" -ForegroundColor Green
    
    
    build_script:
    
    DonLakeFlyer's avatar
     
    DonLakeFlyer committed
      - mkdir %SHADOW_BUILD_DIR% && cd %SHADOW_BUILD_DIR% && C:\Qt\5.12.5\msvc2017_64\bin\qmake -r CONFIG+=%CONFIG% CONFIG+=WarningsAsErrorsOn %APPVEYOR_BUILD_FOLDER%\qgroundcontrol.pro
    
      - cd %SHADOW_BUILD_DIR% && jom
    
      - if "%CONFIG%" EQU "installer" ( copy %SHADOW_BUILD_DIR%\release\QGroundControl-installer.exe %APPVEYOR_BUILD_FOLDER%\QGroundControl-installer.exe )
    
    # Generate the source server information to embed in the PDB
    
      - '"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\srcsrv\srctool.exe" -r -u "%SHADOW_BUILD_DIR%\release\qgroundcontrol.pdb" | grep qgroundcontrol | grep -v moc_ | grep -v libs\\mavlink | grep -v build_windows_install | python %APPVEYOR_BUILD_FOLDER%\deploy\genPDBsrcsrv.py > %SHADOW_BUILD_DIR%\release\qgroundcontrol.pdb.srcsrv'
    
    # write the source server info
    
      - '"C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\srcsrv\pdbstr.exe" -w -i:%SHADOW_BUILD_DIR%\release\qgroundcontrol.pdb.srcsrv -p:%SHADOW_BUILD_DIR%\release\qgroundcontrol.pdb -s:srcsrv'
    
    # build the symbol / PE store
    
      - 'cd %APPVEYOR_BUILD_FOLDER% && "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" add /compress /s symbols /f %SHADOW_BUILD_DIR%\release\qgroundcontrol.pdb /t qgroundcontrol'
      - 'cd %APPVEYOR_BUILD_FOLDER% && "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\symstore.exe" add /compress /s symbols /f %SHADOW_BUILD_DIR%\release\qgroundcontrol.exe /t qgroundcontrol'
      - ps: 'cd $env:appveyor_build_folder; .\deploy\lowercaseify_symbolstore.ps1'
    
    
    test_script:
    
      - if "%CONFIG%" EQU "debug" ( %SHADOW_BUILD_DIR%\debug\qgroundcontrol --unittest )
    
    Daniel Agar's avatar
    Daniel Agar committed
    
    
    Don Gagne's avatar
     
    Don Gagne committed
    artifacts:
    
    Don Gagne's avatar
     
    Don Gagne committed
      - path: QGroundControl-installer.exe
        name: qgcinstaller
    
    Don Gagne's avatar
     
    Don Gagne committed
      - path: build_windows_install\release\qgroundcontrol.pdb
    
    Don Gagne's avatar
     
    Don Gagne committed
        name: pdb
    
    Daniel Agar's avatar
    Daniel Agar committed
    deploy:
    
    # deploy continuous builds to s3
    
    Daniel Agar's avatar
    Daniel Agar committed
      - provider: S3
    
        access_key_id:
          secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
    
    Daniel Agar's avatar
    Daniel Agar committed
        secret_access_key:
          secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
    
        bucket: qgroundcontrol
    
    Don Gagne's avatar
    Don Gagne committed
        region: us-west-2
    
    Daniel Agar's avatar
    Daniel Agar committed
        set_public: true
    
        folder: builds/$(APPVEYOR_REPO_BRANCH)
    
    Daniel Agar's avatar
    Daniel Agar committed
        artifact: qgcinstaller
    
        on:
          CONFIG: installer
    
          appveyor_repo_tag: false
    
    Don Gagne's avatar
     
    Don Gagne committed
    # Symbols for daily builds are currently turned off due to AppVeyor artifact storage limits
    
    # deploy daily build symbols to s3
    
    Don Gagne's avatar
     
    Don Gagne committed
    #  - provider: S3
    #    access_key_id:
    #      secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
    #    secret_access_key:
    #      secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
    #    bucket: qgroundcontrol
    #    region: us-west-2
    #    set_public: true
    #    folder: cisyms
    #    artifact: symbols
    #    on:
    #      CONFIG: installer
    #      appveyor_repo_tag: false
    
    Don Gagne's avatar
     
    Don Gagne committed
    # deploy release symbols to s3
    
    Don Gagne's avatar
     
    Don Gagne committed
    #  - provider: S3
    #    access_key_id:
    #      secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
    #    secret_access_key:
    #      secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
    #    bucket: qgroundcontrol
    #    region: us-west-2
    #    set_public: true
    #    folder: releasesyms
    #    artifact: symbols
    #    on:
    #      CONFIG: installer
    #      appveyor_repo_tag: true
    
    # deploy tagged releases to Github releases
    
    Daniel Agar's avatar
    Daniel Agar committed
      - provider: GitHub
    
        auth_token:
          secure: dzWLqd0eTKjrAWC5LgqVnwLemmrNdddGA2ZZn/OthAP37mwCLkP2C1zil7ivmEE8
    
    Daniel Agar's avatar
    Daniel Agar committed
        artifact: qgcinstaller
    
    Daniel Agar's avatar
    Daniel Agar committed
        draft: false
        prerelease: false
        on:
    
          CONFIG: installer
    
    Daniel Agar's avatar
    Daniel Agar committed
          appveyor_repo_tag: true
    
    # deploy tagged releases to s3 version folder
    
      - provider: S3
        access_key_id:
          secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
        secret_access_key:
          secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
        bucket: qgroundcontrol
    
        region: us-west-2
    
        set_public: true
    
        folder: $(APPVEYOR_REPO_TAG_NAME)
    
        artifact: qgcinstaller
        on:
          CONFIG: installer
          appveyor_repo_tag: true
    
    # deploy tagged releases to s3 latest folder
      - provider: S3
        access_key_id:
          secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
        secret_access_key:
          secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
        bucket: qgroundcontrol
    
        region: us-west-2
    
        set_public: true
        folder: latest
        artifact: qgcinstaller
        on:
          CONFIG: installer
          appveyor_repo_tag: true
    
    Don Gagne's avatar
     
    Don Gagne committed
    
    # deploy pdb for tagged releases to s3 latest folder
      - provider: S3
        access_key_id:
            secure: IGAojLMqokL+76DbdulmWDA3MTsxEBBi3ReVVSqTy9c=
        secret_access_key:
            secure: RiYqaR+3T2PMNz2j5ur8LCA6H/Zfd4jTX33CZE5iBxm+zaz4QLs25p0B7prpaoNN
        bucket: qgroundcontrol
        region: us-west-2
        set_public: true
        folder: latest
        artifact: pdb
        on:
           CONFIG: installer
           appveyor_repo_tag: true