Pier Angelo Vendrame pushed to branch tor-browser-128.5.0esr-14.5-1 at The Tor Project / Applications / Tor Browser
Commits:
-
67cfb4f1
by Beatriz Rizental at 2024-12-11T20:00:05+01:00
-
94bb2ef1
by Beatriz Rizental at 2024-12-11T20:00:06+01:00
-
19a0c991
by Beatriz Rizental at 2024-12-12T05:00:14+01:00
-
7dc11c34
by Beatriz Rizental at 2024-12-12T05:00:15+01:00
11 changed files:
- .gitlab-ci.yml
- .gitlab/ci/scripts/helpers.py → .gitlab/ci/jobs/lint/helpers.py
- .gitlab/ci/lint.yml → .gitlab/ci/jobs/lint/lint.yml
- + .gitlab/ci/jobs/startup-test/startup-test.py
- + .gitlab/ci/jobs/startup-test/startup-test.yml
- .gitlab/ci/update-containers.yml → .gitlab/ci/jobs/update-containers.yml
- .gitlab/ci/update-translations.yml → .gitlab/ci/jobs/update-translations.yml
- + .gitlab/ci/mixins.yml
- testing/mozbase/mozinstall/mozinstall/mozinstall.py
- testing/mozbase/setup_development.py
- testing/mozharness/scripts/does_it_crash.py
Changes:
| 1 | 1 | stages:
|
| 2 | 2 | - update-container-images
|
| 3 | 3 | - lint
|
| 4 | + - startup-test
|
|
| 4 | 5 | - update-translations
|
| 5 | 6 | |
| 6 | 7 | variables:
|
| ... | ... | @@ -8,6 +9,8 @@ variables: |
| 8 | 9 | LOCAL_REPO_PATH: /srv/apps-repos/tor-browser.git
|
| 9 | 10 | |
| 10 | 11 | include:
|
| 11 | - - local: '.gitlab/ci/lint.yml'
|
|
| 12 | - - local: '.gitlab/ci/update-containers.yml'
|
|
| 13 | - - local: '.gitlab/ci/update-translations.yml' |
|
| 12 | + - local: '.gitlab/ci/mixins.yml'
|
|
| 13 | + - local: '.gitlab/ci/jobs/lint/lint.yml'
|
|
| 14 | + - local: '.gitlab/ci/jobs/startup-test/startup-test.yml'
|
|
| 15 | + - local: '.gitlab/ci/jobs/update-containers.yml'
|
|
| 16 | + - local: '.gitlab/ci/jobs/update-translations.yml' |
| 1 | 1 | .base:
|
| 2 | + extends: .with-local-repo-bash
|
|
| 2 | 3 | stage: lint
|
| 3 | 4 | image: $IMAGE_PATH
|
| 4 | 5 | interruptible: true
|
| 5 | 6 | variables:
|
| 6 | 7 | MOZBUILD_STATE_PATH: "$CI_PROJECT_DIR/.cache/mozbuild"
|
| 7 | - # A copy of the repository already is available in the runner.
|
|
| 8 | - GIT_STRATEGY: "none"
|
|
| 9 | 8 | cache:
|
| 10 | 9 | paths:
|
| 11 | 10 | - node_modules
|
| ... | ... | @@ -17,24 +16,11 @@ |
| 17 | 16 | tags:
|
| 18 | 17 | # Run these jobs in the browser dedicated runners.
|
| 19 | 18 | - firefox
|
| 20 | - before_script:
|
|
| 21 | - - git init
|
|
| 22 | - - git remote add local "$LOCAL_REPO_PATH"
|
|
| 23 | - - git fetch --depth 500 local
|
|
| 24 | - - git remote add origin "$CI_REPOSITORY_URL"
|
|
| 25 | - - |
|
|
| 26 | - if [ -z "${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}" ]; then
|
|
| 27 | - echo "No branch specified. Stopping the pipeline."
|
|
| 28 | - exit 1
|
|
| 29 | - fi
|
|
| 30 | - - echo "Fetching from remote branch ${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
|
|
| 31 | - - git fetch origin "${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
|
|
| 32 | - - git checkout origin/${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}
|
|
| 33 | 19 | |
| 34 | 20 | eslint:
|
| 35 | 21 | extends: .base
|
| 36 | 22 | script:
|
| 37 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l eslint
|
|
| 23 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l eslint
|
|
| 38 | 24 | rules:
|
| 39 | 25 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 40 | 26 | changes:
|
| ... | ... | @@ -63,7 +49,7 @@ eslint: |
| 63 | 49 | stylelint:
|
| 64 | 50 | extends: .base
|
| 65 | 51 | script:
|
| 66 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l stylelint
|
|
| 52 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l stylelint
|
|
| 67 | 53 | rules:
|
| 68 | 54 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 69 | 55 | changes:
|
| ... | ... | @@ -81,7 +67,7 @@ stylelint: |
| 81 | 67 | py-black:
|
| 82 | 68 | extends: .base
|
| 83 | 69 | script:
|
| 84 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l black
|
|
| 70 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l black
|
|
| 85 | 71 | rules:
|
| 86 | 72 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 87 | 73 | changes:
|
| ... | ... | @@ -100,7 +86,7 @@ py-black: |
| 100 | 86 | py-ruff:
|
| 101 | 87 | extends: .base
|
| 102 | 88 | script:
|
| 103 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l ruff
|
|
| 89 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l ruff
|
|
| 104 | 90 | rules:
|
| 105 | 91 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 106 | 92 | changes:
|
| ... | ... | @@ -119,7 +105,7 @@ py-ruff: |
| 119 | 105 | yaml:
|
| 120 | 106 | extends: .base
|
| 121 | 107 | script:
|
| 122 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l yaml
|
|
| 108 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l yaml
|
|
| 123 | 109 | rules:
|
| 124 | 110 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 125 | 111 | changes:
|
| ... | ... | @@ -134,7 +120,7 @@ yaml: |
| 134 | 120 | shellcheck:
|
| 135 | 121 | extends: .base
|
| 136 | 122 | script:
|
| 137 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l shellcheck
|
|
| 123 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l shellcheck
|
|
| 138 | 124 | rules:
|
| 139 | 125 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 140 | 126 | changes:
|
| ... | ... | @@ -149,7 +135,7 @@ clang-format: |
| 149 | 135 | extends: .base
|
| 150 | 136 | script:
|
| 151 | 137 | - ./mach configure --without-wasm-sandboxed-libraries --with-base-browser-version=0.0.0
|
| 152 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l clang-format
|
|
| 138 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l clang-format
|
|
| 153 | 139 | rules:
|
| 154 | 140 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 155 | 141 | changes:
|
| ... | ... | @@ -168,7 +154,7 @@ clang-format: |
| 168 | 154 | rustfmt:
|
| 169 | 155 | extends: .base
|
| 170 | 156 | script:
|
| 171 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l rustfmt
|
|
| 157 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l rustfmt
|
|
| 172 | 158 | rules:
|
| 173 | 159 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 174 | 160 | changes:
|
| ... | ... | @@ -182,7 +168,7 @@ rustfmt: |
| 182 | 168 | fluent-lint:
|
| 183 | 169 | extends: .base
|
| 184 | 170 | script:
|
| 185 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l fluent-lint
|
|
| 171 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l fluent-lint
|
|
| 186 | 172 | rules:
|
| 187 | 173 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 188 | 174 | changes:
|
| ... | ... | @@ -197,7 +183,7 @@ fluent-lint: |
| 197 | 183 | localization:
|
| 198 | 184 | extends: .base
|
| 199 | 185 | script:
|
| 200 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l l10n
|
|
| 186 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l l10n
|
|
| 201 | 187 | rules:
|
| 202 | 188 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 203 | 189 | changes:
|
| ... | ... | @@ -214,7 +200,7 @@ localization: |
| 214 | 200 | mingw-capitalization:
|
| 215 | 201 | extends: .base
|
| 216 | 202 | script:
|
| 217 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l mingw-capitalization
|
|
| 203 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l mingw-capitalization
|
|
| 218 | 204 | rules:
|
| 219 | 205 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 220 | 206 | changes:
|
| ... | ... | @@ -231,7 +217,7 @@ mingw-capitalization: |
| 231 | 217 | mscom-init:
|
| 232 | 218 | extends: .base
|
| 233 | 219 | script:
|
| 234 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l mscom-init
|
|
| 220 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l mscom-init
|
|
| 235 | 221 | rules:
|
| 236 | 222 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 237 | 223 | changes:
|
| ... | ... | @@ -248,7 +234,7 @@ mscom-init: |
| 248 | 234 | file-whitespace:
|
| 249 | 235 | extends: .base
|
| 250 | 236 | script:
|
| 251 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l file-whitespace
|
|
| 237 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l file-whitespace
|
|
| 252 | 238 | rules:
|
| 253 | 239 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 254 | 240 | changes:
|
| ... | ... | @@ -278,7 +264,7 @@ file-whitespace: |
| 278 | 264 | test-manifest:
|
| 279 | 265 | extends: .base
|
| 280 | 266 | script:
|
| 281 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l test-manifest-alpha -l test-manifest-disable -l test-manifest-skip-if
|
|
| 267 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l test-manifest-alpha -l test-manifest-disable -l test-manifest-skip-if
|
|
| 282 | 268 | rules:
|
| 283 | 269 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 284 | 270 | changes:
|
| ... | ... | @@ -293,7 +279,7 @@ test-manifest: |
| 293 | 279 | trojan-source:
|
| 294 | 280 | extends: .base
|
| 295 | 281 | script:
|
| 296 | - - .gitlab/ci/scripts/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l trojan-source
|
|
| 282 | + - .gitlab/ci/jobs/lint/helpers.py --get-changed-files | xargs -d '\n' ./mach lint -l trojan-source
|
|
| 297 | 283 | rules:
|
| 298 | 284 | - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
| 299 | 285 | changes:
|
| 1 | +#!/usr/bin/env python3
|
|
| 2 | + |
|
| 3 | +import argparse
|
|
| 4 | +import subprocess
|
|
| 5 | +from datetime import datetime, timedelta
|
|
| 6 | + |
|
| 7 | +PLATFORM_TO_ARCH = {
|
|
| 8 | + "linux": ["x86_64", "i686"],
|
|
| 9 | + "macos": ["x86_64", "aarch64"],
|
|
| 10 | + "windows": ["x86_64", "i686"],
|
|
| 11 | +}
|
|
| 12 | + |
|
| 13 | + |
|
| 14 | +class DynamicArchAction(argparse.Action):
|
|
| 15 | + def __call__(self, parser, namespace, values, option_string=None):
|
|
| 16 | + platform = getattr(namespace, "platform", None)
|
|
| 17 | + if not platform:
|
|
| 18 | + raise argparse.ArgumentError(
|
|
| 19 | + self, "The --platform argument must be provided before --arch."
|
|
| 20 | + )
|
|
| 21 | + |
|
| 22 | + valid_archs = PLATFORM_TO_ARCH.get(platform, [])
|
|
| 23 | + if values not in valid_archs:
|
|
| 24 | + raise argparse.ArgumentError(
|
|
| 25 | + self,
|
|
| 26 | + f"Invalid architecture '{values}' for platform '{platform}'. "
|
|
| 27 | + f"Valid options are: {', '.join(valid_archs)}",
|
|
| 28 | + )
|
|
| 29 | + setattr(namespace, self.dest, values)
|
|
| 30 | + |
|
| 31 | + |
|
| 32 | +parser = argparse.ArgumentParser(
|
|
| 33 | + description="Downloads and executes yesterday's build of Tor or Mullvad browser nightly."
|
|
| 34 | +)
|
|
| 35 | + |
|
| 36 | +parser.add_argument(
|
|
| 37 | + "--platform",
|
|
| 38 | + required=True,
|
|
| 39 | + help="Specify the platform (linux, macos or windows). Must be provided before --arch.",
|
|
| 40 | + choices=PLATFORM_TO_ARCH.keys(),
|
|
| 41 | +)
|
|
| 42 | +parser.add_argument(
|
|
| 43 | + "--arch",
|
|
| 44 | + required=True,
|
|
| 45 | + help="Specify the architecture (validated dynamically based on --platform).",
|
|
| 46 | + action=DynamicArchAction,
|
|
| 47 | +)
|
|
| 48 | +parser.add_argument(
|
|
| 49 | + "--browser",
|
|
| 50 | + required=True,
|
|
| 51 | + choices=["tor", "mullvad"],
|
|
| 52 | + help="Specify the browser (tor or mullvad)",
|
|
| 53 | +)
|
|
| 54 | + |
|
| 55 | +args = parser.parse_args()
|
|
| 56 | +arch = f"-{args.arch}"
|
|
| 57 | +extra = ""
|
|
| 58 | + |
|
| 59 | +if args.platform == "linux":
|
|
| 60 | + archive_extension = "tar.xz"
|
|
| 61 | + binary = f"Browser/start-{args.browser}-browser"
|
|
| 62 | +elif args.platform == "macos":
|
|
| 63 | + archive_extension = "dmg"
|
|
| 64 | + # The URL doesn't include the architecture for MacOS,
|
|
| 65 | + # because it's a universal build.
|
|
| 66 | + arch = ""
|
|
| 67 | + if args.browser == "tor":
|
|
| 68 | + binary = "Contents/MacOS/firefox"
|
|
| 69 | + else:
|
|
| 70 | + binary = "Contents/MacOS/mullvadbrowser"
|
|
| 71 | +elif args.platform == "windows":
|
|
| 72 | + archive_extension = "exe"
|
|
| 73 | + |
|
| 74 | + if args.browser == "tor":
|
|
| 75 | + extra = "-portable"
|
|
| 76 | + binary = "Browser/firefox.exe"
|
|
| 77 | + else:
|
|
| 78 | + binary = "mullvadbrowser.exe"
|
|
| 79 | + |
|
| 80 | +yesterday = (datetime.now() - timedelta(days=1)).strftime("%Y.%m.%d")
|
|
| 81 | + |
|
| 82 | +download_url_base = (
|
|
| 83 | + "https://nightlies.tbb.torproject.org/nightly-builds/tor-browser-builds"
|
|
| 84 | +)
|
|
| 85 | +if args.browser == "tor":
|
|
| 86 | + download_url = f"{download_url_base}/tbb-nightly.{yesterday}/nightly-{args.platform}{arch}/{args.browser}-browser-{args.platform}{arch}{extra}-tbb-nightly.{yesterday}.{archive_extension}"
|
|
| 87 | +else:
|
|
| 88 | + download_url = f"{download_url_base}/tbb-nightly.{yesterday}/mullvadbrowser-nightly-{args.platform}{arch}/{args.browser}-browser-{args.platform}{arch}-tbb-nightly.{yesterday}.{archive_extension}"
|
|
| 89 | + |
|
| 90 | +subprocess.run(
|
|
| 91 | + [
|
|
| 92 | + "python3",
|
|
| 93 | + "testing/mozharness/scripts/does_it_crash.py",
|
|
| 94 | + "--run-for",
|
|
| 95 | + "30",
|
|
| 96 | + "--thing-url",
|
|
| 97 | + download_url,
|
|
| 98 | + "--thing-to-run",
|
|
| 99 | + binary,
|
|
| 100 | + ]
|
|
| 101 | +) |
| 1 | +# startup-test-windows:
|
|
| 2 | +# extends: .with-local-repo-pwsh
|
|
| 3 | +# variables:
|
|
| 4 | +# LOCAL_REPO_PATH: "C:\\Users\\windoes\\tor-browser.git"
|
|
| 5 | +# stage: startup-test
|
|
| 6 | +# interruptible: true
|
|
| 7 | +# parallel:
|
|
| 8 | +# matrix:
|
|
| 9 | +# - BROWSER: ["tor", "mullvad"]
|
|
| 10 | +# tags:
|
|
| 11 | +# - x86-win11
|
|
| 12 | +# script:
|
|
| 13 | +# - ./mach python testing/mozbase/setup_development.py
|
|
| 14 | +# - ./mach python .gitlab/ci/jobs/startup-test/startup-test.py --platform windows --arch x86_64 --browser tor
|
|
| 15 | +# rules:
|
|
| 16 | +# - if: $CI_PIPELINE_SOURCE == "schedule"
|
|
| 17 | + |
|
| 18 | +# startup-test-macos:
|
|
| 19 | +# extends: .with-local-repo-bash
|
|
| 20 | +# variables:
|
|
| 21 | +# LOCAL_REPO_PATH: "/Users/gitlab-runner/tor-browser.git"
|
|
| 22 | +# stage: startup-test
|
|
| 23 | +# interruptible: true
|
|
| 24 | +# parallel:
|
|
| 25 | +# matrix:
|
|
| 26 | +# - BROWSER: ["tor", "mullvad"]
|
|
| 27 | +# tags:
|
|
| 28 | +# - x86-macos
|
|
| 29 | +# script:
|
|
| 30 | +# - ./mach python testing/mozbase/setup_development.py
|
|
| 31 | +# - ./mach python .gitlab/ci/jobs/startup-test/startup-test.py --platform macos --arch x86_64 --browser tor
|
|
| 32 | +# rules:
|
|
| 33 | +# - if: $CI_PIPELINE_SOURCE == "schedule"
|
|
| 34 | + |
|
| 35 | +startup-test-linux:
|
|
| 36 | + extends: .with-local-repo-bash
|
|
| 37 | + image: $IMAGE_PATH
|
|
| 38 | + stage: startup-test
|
|
| 39 | + interruptible: true
|
|
| 40 | + parallel:
|
|
| 41 | + matrix:
|
|
| 42 | + - BROWSER: ["tor", "mullvad"]
|
|
| 43 | + tags:
|
|
| 44 | + - firefox
|
|
| 45 | + script:
|
|
| 46 | + - Xvfb :99 -screen 0 1400x900x24 &
|
|
| 47 | + - export DISPLAY=:99
|
|
| 48 | + - ./mach python testing/mozbase/setup_development.py
|
|
| 49 | + - ./mach python .gitlab/ci/jobs/startup-test/startup-test.py --platform linux --arch x86_64 --browser tor
|
|
| 50 | + rules:
|
|
| 51 | + - if: $CI_PIPELINE_SOURCE == "schedule" |
| 1 | +.with-local-repo-bash:
|
|
| 2 | + variables:
|
|
| 3 | + GIT_STRATEGY: "none"
|
|
| 4 | + before_script:
|
|
| 5 | + - git init
|
|
| 6 | + - git remote add local "$LOCAL_REPO_PATH"
|
|
| 7 | + - git fetch --depth 500 local
|
|
| 8 | + - git remote add origin "$CI_REPOSITORY_URL"
|
|
| 9 | + - |
|
|
| 10 | + if [ -z "${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}" ]; then
|
|
| 11 | + echo "No branch specified. Stopping the pipeline."
|
|
| 12 | + exit 1
|
|
| 13 | + fi
|
|
| 14 | + - echo "Fetching from remote branch ${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
|
|
| 15 | + - git fetch origin "${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}"
|
|
| 16 | + - git checkout origin/${CI_COMMIT_BRANCH:-$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME}
|
|
| 17 | + |
|
| 18 | +.with-local-repo-pwsh:
|
|
| 19 | + variables:
|
|
| 20 | + GIT_STRATEGY: "none"
|
|
| 21 | + before_script:
|
|
| 22 | + - git init
|
|
| 23 | + - git remote add local $env:LOCAL_REPO_PATH
|
|
| 24 | + - git fetch --depth 500 local
|
|
| 25 | + - git remote add origin $env:CI_REPOSITORY_URL
|
|
| 26 | + - |
|
|
| 27 | + $branchName = $env:CI_COMMIT_BRANCH
|
|
| 28 | + if ([string]::IsNullOrEmpty($branchName)) {
|
|
| 29 | + $branchName = $env:CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
|
|
| 30 | + }
|
|
| 31 | + if ([string]::IsNullOrEmpty($branchName)) {
|
|
| 32 | + Write-Output "No branch specified. Stopping the pipeline."
|
|
| 33 | + exit 1
|
|
| 34 | + }
|
|
| 35 | + - Write-Output "Fetching from remote branch $branchName"
|
|
| 36 | + - git fetch origin $branchName
|
|
| 37 | + - git checkout origin/$branchName |
| ... | ... | @@ -352,7 +352,8 @@ def _install_exe(src, dest): |
| 352 | 352 | |
| 353 | 353 | # possibly gets around UAC in vista (still need to run as administrator)
|
| 354 | 354 | os.environ["__compat_layer"] = "RunAsInvoker"
|
| 355 | - cmd = '"%s" /extractdir=%s' % (src, os.path.realpath(dest))
|
|
| 355 | + cmd = '"%s" /S /D=%s' % (src, os.path.realpath(dest))
|
|
| 356 | + # cmd = '"%s" /extractdir=%s' % (src, os.path.realpath(dest))
|
|
| 356 | 357 | |
| 357 | 358 | subprocess.check_call(cmd)
|
| 358 | 359 |
| ... | ... | @@ -267,23 +267,28 @@ def main(args=sys.argv[1:]): |
| 267 | 267 | os.environ.get("PATH", "").strip(os.path.pathsep),
|
| 268 | 268 | )
|
| 269 | 269 | |
| 270 | + current_file_path = os.path.abspath(__file__)
|
|
| 271 | + topobjdir = os.path.dirname(os.path.dirname(os.path.dirname(current_file_path)))
|
|
| 272 | + mach = str(os.path.join(topobjdir, "mach"))
|
|
| 273 | + |
|
| 270 | 274 | # install non-mozbase dependencies
|
| 271 | 275 | # these need to be installed separately and the --no-deps flag
|
| 272 | 276 | # subsequently used due to a bug in setuptools; see
|
| 273 | 277 | # https://bugzilla.mozilla.org/show_bug.cgi?id=759836
|
| 274 | 278 | pypi_deps = dict([(i, j) for i, j in alldeps.items() if i not in unrolled])
|
| 275 | 279 | for package, version in pypi_deps.items():
|
| 276 | - # easy_install should be available since we rely on setuptools
|
|
| 277 | - call(["easy_install", version])
|
|
| 280 | + # Originally, Mozilla used easy_install here.
|
|
| 281 | + # That tool is deprecated, therefore we swich to pip.
|
|
| 282 | + call([sys.executable, mach, "python", "-m", "pip", "install", version])
|
|
| 278 | 283 | |
| 279 | 284 | # install packages required for unit testing
|
| 280 | 285 | for package in test_packages:
|
| 281 | - call(["easy_install", package])
|
|
| 286 | + call([sys.executable, mach, "python", "-m", "pip", "install", package])
|
|
| 282 | 287 | |
| 283 | 288 | # install extra non-mozbase packages if desired
|
| 284 | 289 | if options.extra:
|
| 285 | 290 | for package in extra_packages:
|
| 286 | - call(["easy_install", package])
|
|
| 291 | + call([sys.executable, mach, "python", "-m", "pip", "install", package])
|
|
| 287 | 292 | |
| 288 | 293 | |
| 289 | 294 | if __name__ == "__main__":
|
| ... | ... | @@ -112,6 +112,13 @@ class DoesItCrash(BaseScript): |
| 112 | 112 | for retry in range(3):
|
| 113 | 113 | if is_win:
|
| 114 | 114 | proc.send_signal(signal.CTRL_BREAK_EVENT)
|
| 115 | + |
|
| 116 | + # Manually kill all processes we spawned,
|
|
| 117 | + # not sure why this is required, but without it we hang forever.
|
|
| 118 | + process_name = self.config["thing_to_run"].split("/")[-1]
|
|
| 119 | + subprocess.run(
|
|
| 120 | + ["taskkill", "/T", "/F", "/IM", process_name], check=True
|
|
| 121 | + )
|
|
| 115 | 122 | else:
|
| 116 | 123 | os.killpg(proc.pid, signal.SIGKILL)
|
| 117 | 124 | try:
|