File: .appveyor.yml

package info (click to toggle)
php-doctrine-dbal 4.2.3%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 4,644 kB
  • sloc: php: 46,471; xml: 460; makefile: 22
file content (126 lines) | stat: -rw-r--r-- 5,173 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
build: false
platform:
  - x64
#matrix:
#  fast_finish: true # kills the build at the first failure
clone_folder: C:\projects\dbal
clone_depth: 2

only_commits:
  files:
    - .appveyor.yml
    - ci\appveyor\
    - composer.*
    - src\
    - tests\

cache:
  - C:\ProgramData\chocolatey\bin -> .appveyor.yml
  - C:\ProgramData\chocolatey\lib -> .appveyor.yml
  - C:\tools\php -> .appveyor.yml
  - C:\tools\composer -> .appveyor.yml
  - '%LOCALAPPDATA%\Composer\files -> composer.json'

## Build matrix for lowest and highest possible targets
environment:
  matrix:
  - db: mssql
    driver: sqlsrv
    db_version: sql2017
    php: 8.1
  - db: mssql
    driver: pdo_sqlsrv
    db_version: sql2017
    php: 8.1

init:
  - SET PATH=C:\Program Files\OpenSSL;c:\tools\php;C:\tools\composer;%PATH%
  - SET COMPOSER_NO_INTERACTION=1
  - SET ANSICON=121x90 (121x90)

## Install PHP and composer, and run the appropriate composer command
install:
    - sc config wuauserv start=auto
    - net start wuauserv
    - ps: |
        # Check if installation is cached
        if (!(Test-Path c:\tools\php)) {
          choco upgrade chocolatey
          appveyor-retry choco install --no-progress --params '""/InstallDir:C:\tools\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
          # install sqlite
          appveyor-retry choco install --no-progress -y sqlite
          Get-ChildItem -Path c:\tools\php
          cd c:\tools\php

          # Set PHP environment items that are always needed
          copy php.ini-production php.ini
          Add-Content php.ini "`n date.timezone=UTC"
          Add-Content php.ini "`n extension_dir=ext"
          Add-Content php.ini "`n memory_limit=1G"
          Add-Content php.ini "`n extension=php_openssl.dll"
          Add-Content php.ini "`n extension=php_mbstring.dll"
          Add-Content php.ini "`n extension=php_fileinfo.dll"
          Add-Content php.ini "`n extension=php_pdo_sqlite.dll"
          Add-Content php.ini "`n extension=php_sqlite3.dll"
          Add-Content php.ini "`n extension=php_curl.dll"

          $DLLVersion = "5.10.0"
          cd c:\tools\php\ext
          $source = "https://windows.php.net/downloads/pecl/releases/sqlsrv/$($DLLVersion)/php_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip"
          $destination = "c:\tools\php\ext\php_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip"
          Invoke-WebRequest $source -OutFile $destination
          7z x -y php_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip > $null
          $source = "https://windows.php.net/downloads/pecl/releases/pdo_sqlsrv/$($DLLVersion)/php_pdo_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip"
          $destination = "c:\tools\php\ext\php_pdo_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip"
          Invoke-WebRequest $source -OutFile $destination
          7z x -y php_pdo_sqlsrv-$($DLLVersion)-$($env:php)-nts-vs16-x64.zip > $null
          $DLLVersion = (Invoke-WebRequest "https://pecl.php.net/rest/r/pcov/stable.txt").Content
          Invoke-WebRequest https://downloads.php.net/~windows/pecl/releases/pcov/$($DLLVersion)/php_pcov-$($DLLVersion)-$($env:php)-nts-vs16-$($env:platform).zip -OutFile pcov.zip
          7z x -y pcov.zip > $null
          Remove-Item c:\tools\php\* -include .zip
          cd c:\tools\php
          Add-Content php.ini "`nextension=php_sqlsrv.dll"
          Add-Content php.ini "`nextension=php_pdo_sqlsrv.dll"
          Add-Content php.ini "`nextension=php_pcov.dll"
          Add-Content php.ini "`n"

          # download Composer
          if (!(Test-Path C:\tools\composer)) {
            New-Item -path c:\tools -name composer -itemtype directory
          }
          if (!(Test-Path c:\tools\composer\composer.phar)) {
            appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar -Filename C:\tools\composer\composer.phar
            Set-Content -path 'C:\tools\composer\composer.bat' -Value ('@php C:\tools\composer\composer.phar %*')
          }
        }
    # install composer dependencies
    - cd C:\projects\dbal
    - appveyor-retry composer self-update
    - appveyor-retry composer install --no-progress --prefer-dist

before_test:
# Selectively start the services
  - ps: >-
      if ($env:db -eq "mssql") {
        $instanceName = $env:db_version.ToUpper()
        net start "MSSQL`$$instanceName"
      }

test_script:
  - ps: >-
      if ($env:db_version) {
        $env:phpunit_config = "ci\appveyor\$($env:db).$($env:db_version).$($env:driver).appveyor.xml"
      } else {
        $env:phpunit_config = "ci\appveyor\$($env:db).$($env:driver).appveyor.xml"
      }

      vendor\bin\phpunit -c $($env:phpunit_config) --coverage-clover clover.xml

      if ($LastExitCode -ne 0) {
        $host.SetShouldExit($LastExitCode)
      }

after_test:
  - appveyor DownloadFile https://codecov.io/bash -FileName codecov.sh
  - SET upload_name=appveyor-%db%-%db_version%-%driver%-php-%php%
  - bash codecov.sh -f clover.xml -n %upload_name%