aboutsummaryrefslogtreecommitdiffstats
path: root/.appveyor.yml
blob: 160cdf736e54e35b86d9eda2f354ac3e9b9d6244 (plain)
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
version: '{build}'
build: off  # Not a C# project

branches:
  except:
    - requires-io-master

environment:
  CI_DEPS: codecov>=2.0.5
  CI_COMMANDS: codecov
  matrix:
    - PYTHON: "C:\\Python35"
      TOXENV: "py35"
    # TODO: ENABLE WHEN AVAILABLE
    # - PYTHON: "C:\\Python36"
    #   TOXENV: "py36"

  SNAPSHOT_HOST:
    secure: NeTo57s2rJhCd/mjKHetXVxCFd3uhr8txnjnAXD1tUI=
  SNAPSHOT_PORT:
    secure: TiJPtg60/edYTH8RnoBErg==
  SNAPSHOT_USER:
    secure: 6yBwmO5gv4vAwoFYII8qjQ==
  SNAPSHOT_PASS:
    secure: LPjrtFrWxYhOVGXzfPRV1GjtZE/wHoKq9m/PI6hSalfysUK5p2DxTG9uHlb4Q9qV
  RTOOL_KEY:
    secure: 0a+UUNbA+JjquyAbda4fd0JmiwL06AdG6torRPdCvbPDbKHnaW/BHHp1nRPytOKM

install:
  - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
  - "python -m pip install --disable-pip-version-check -U pip"
  - "pip install -U tox"

test_script:
  - ps: "tox -- --verbose --cov-report=term"
  - ps: |
      $Env:VERSION = $(python mitmproxy/version.py)
      $Env:SKIP_MITMPROXY = "python -c `"print('skip mitmproxy')`""
      tox -e wheel
      tox -e rtool -- bdist

  - ps: |
      if(
        ($Env:TOXENV -match "py35") -and !$Env:APPVEYOR_PULL_REQUEST_NUMBER -and
        (($Env:APPVEYOR_REPO_BRANCH -In ("master", "pyinstaller")) -or ($Env:APPVEYOR_REPO_TAG -match "true"))
      ) {
        echo "Decrypt license..."
        tox -e rtool -- decrypt release\installbuilder\license.xml.enc release\installbuilder\license.xml
        $ibVersion = "17.9.0"
        $ibSetup = "C:\projects\mitmproxy\release\installbuilder-installer.exe"
        $ibCli = "C:\Program Files (x86)\BitRock InstallBuilder Enterprise $ibVersion\bin\builder-cli.exe"
        if (!(Test-Path $ibSetup)) {
          echo "Download InstallBuilder..."
          (New-Object System.Net.WebClient).DownloadFile(
            "https://installbuilder.bitrock.com/installbuilder-enterprise-$ibVersion-windows-installer.exe",
            $ibSetup
          )
        }
        echo "Install InstallBuilder..."
        Start-Process $ibSetup "--mode unattended --unattendedmodeui none" -PassThru -NoNewWindow -Wait
        # Wait until executable exists - no idea why this is necessary.
        while (!(Test-Path $ibCli)) { Start-Sleep 0.1 }
        echo "Run InstallBuilder..."
        &$ibCli `
          build `
          .\release\installbuilder\mitmproxy.xml `
          windows `
          --license .\release\installbuilder\license.xml `
          --setvars project.version=$Env:VERSION `
          --verbose
        while (!(Test-Path C:\projects\mitmproxy\release\dist\mitmproxy-*-windows-installer.exe)) { Start-Sleep 0.1 }
        echo "Installer build completed."
      }

deploy_script:
  # we build binaries on every run, but we only upload them for master snapshots or tags.
  ps: |
    if(
      ($Env:TOXENV -match "py35") -and
      (($Env:APPVEYOR_REPO_BRANCH -In ("master", "pyinstaller")) -or ($Env:APPVEYOR_REPO_TAG -match "true"))
    ) {
      tox -e rtool -- upload-snapshot --bdist --wheel --installer
    }

cache:
  - C:\projects\mitmproxy\release\installbuilder-installer.exe -> .appveyor.yml
  - C:\Users\appveyor\AppData\Local\pip\cache

notifications:
  - provider: Slack
    incoming_webhook: https://hooks.slack.com/services/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