[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/tor-browser][base-browser-128.0esr-14.0-1] 2 commits: fixup! Add CI for Base Browser



Title: GitLab

Pier Angelo Vendrame pushed to branch base-browser-128.0esr-14.0-1 at The Tor Project / Applications / Tor Browser

Commits:

  • ac54df57
    by Beatriz Rizental at 2024-07-18T11:34:23+02:00
    fixup! Add CI for Base Browser
    
    Bug 42722: Use custom Dockerfile for lint CI jobs to address
    missing dependencies issues with clang-format and l10n linters.
    
  • fa88a433
    by Beatriz Rizental at 2024-07-18T11:34:24+02:00
    fixup! Add CI for Base Browser
    
    Bug 42722: Cache mozbuild path instead of specifically the pip path
    

4 changed files:

Changes:

  • .gitlab-ci.yml
    1 1
     stages:
    
    2 2
       - lint
    
    3 3
     
    
    4
    +variables:
    
    5
    +  IMAGE_PATH: containers.torproject.org/tpo/applications/tor-browser/base:latest
    
    6
    +
    
    4 7
     include:
    
    5 8
       - local: '.gitlab/ci/lint.yml'

  • .gitlab/ci/docker/base/Dockerfile
    1
    +FROM debian:latest
    
    2
    +
    
    3
    +# Base image which includes all* dependencies checked by ./mach configure.
    
    4
    +#
    
    5
    +# * Actually not all dependencies. WASM sandboxed depencies were left out for now.
    
    6
    +# This installs all dependencies checked by `./mach configure --without-wasm-sandboxed-libraries`.
    
    7
    +#
    
    8
    +# # Building and publishing
    
    9
    +#
    
    10
    +# Whenever this file changes, the updated Docker image must be built and published _manually_ to
    
    11
    +# the tor-browser container registry (https://gitlab.torproject.org/tpo/applications/tor-browser/container_registry/185).
    
    12
    +#
    
    13
    +# This image copies a script from the taskcluster/ folder, which requires it
    
    14
    +# to be built from a folder which is a parent of the taskcluster/ folder.
    
    15
    +#
    
    16
    +# To build, run:
    
    17
    +#
    
    18
    +# ```bash
    
    19
    +# docker build \
    
    20
    +#   -f <PATH_TO_DOCKERFILE> \
    
    21
    +#   -t <REGISTRY_URL>/<IMAGE_NAME>:<IMAGE_TAG>
    
    22
    +#   .
    
    23
    +# ```
    
    24
    +#
    
    25
    +# For example, when building from the root of this repository to the main tor-browser repository
    
    26
    +# and assuming image name to be "base" and tag "latest" -- which is the current terminology:
    
    27
    +#
    
    28
    +# ```bash
    
    29
    +# docker build \
    
    30
    +#   -f .gitlab/ci/docker/Dockerfile \
    
    31
    +#   -t containers.torproject.org/tpo/applications/tor-browser/base:latest
    
    32
    +#   .
    
    33
    +# ```
    
    34
    +
    
    35
    +RUN apt-get update && apt-get install -y \
    
    36
    +    clang \
    
    37
    +    curl \
    
    38
    +    git \
    
    39
    +    libasound2-dev \
    
    40
    +    libdbus-glib-1-dev \
    
    41
    +    libgtk-3-dev \
    
    42
    +    libpango1.0-dev \
    
    43
    +    libpulse-dev \
    
    44
    +    libx11-xcb-dev \
    
    45
    +    libxcomposite-dev \
    
    46
    +    libxcursor-dev \
    
    47
    +    libxdamage-dev \
    
    48
    +    libxi-dev \
    
    49
    +    libxrandr-dev \
    
    50
    +    libxtst-dev \
    
    51
    +    m4 \
    
    52
    +    mercurial \
    
    53
    +    nasm \
    
    54
    +    pkg-config \
    
    55
    +    python3 \
    
    56
    +    python3-pip \
    
    57
    +    unzip \
    
    58
    +    wget
    
    59
    +
    
    60
    +COPY taskcluster/docker/recipes/install-node.sh /scripts/install-node.sh
    
    61
    +RUN chmod +x /scripts/install-node.sh
    
    62
    +RUN /scripts/install-node.sh
    
    63
    +
    
    64
    +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y
    
    65
    +RUN $HOME/.cargo/bin/cargo install cbindgen
    
    66
    +
    
    67
    +WORKDIR /app
    
    68
    +
    
    69
    +CMD ["/bin/bash"]

  • .gitlab/ci/lint.yml
    1
    -variables:
    
    2
    -  # This needs to be kept in sync with the max Python version accepted by ./mach
    
    3
    -  PYTHON_VERSION: "3.11.7"
    
    4
    -
    
    5 1
     .base:
    
    6 2
       stage: lint
    
    7 3
       interruptible: true
    
    8 4
       variables:
    
    9
    -    PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
    
    5
    +    MOZBUILD_STATE_PATH: "$CI_PROJECT_DIR/.cache/mozbuild"
    
    10 6
       cache:
    
    11 7
         paths:
    
    12 8
           - node_modules
    
    13
    -      - .cache/pip
    
    9
    +      - .cache/mozbuild
    
    10
    +    # Store the cache regardless on job outcome
    
    11
    +    when: 'always'
    
    12
    +    # Share the cache throughout all pipelines running for a given branch
    
    13
    +    key: $CI_COMMIT_REF_SLUG
    
    14 14
     
    
    15 15
     eslint:
    
    16 16
       extends: .base
    
    17
    -  image: cimg/python:$PYTHON_VERSION-node
    
    17
    +  image: $IMAGE_PATH
    
    18 18
       script:
    
    19 19
         - .gitlab/ci/scripts/run_linters.py eslint
    
    20 20
       rules:
    
    ... ... @@ -45,7 +45,7 @@ eslint:
    45 45
     
    
    46 46
     stylelint:
    
    47 47
       extends: .base
    
    48
    -  image: cimg/python:$PYTHON_VERSION-node
    
    48
    +  image: $IMAGE_PATH
    
    49 49
       script:
    
    50 50
         - .gitlab/ci/scripts/run_linters.py stylelint
    
    51 51
       rules:
    
    ... ... @@ -65,7 +65,7 @@ stylelint:
    65 65
     
    
    66 66
     py-black:
    
    67 67
       extends: .base
    
    68
    -  image: cimg/python:$PYTHON_VERSION
    
    68
    +  image: $IMAGE_PATH
    
    69 69
       script:
    
    70 70
         - .gitlab/ci/scripts/run_linters.py black
    
    71 71
       rules:
    
    ... ... @@ -86,7 +86,7 @@ py-black:
    86 86
     
    
    87 87
     py-ruff:
    
    88 88
       extends: .base
    
    89
    -  image: cimg/python:$PYTHON_VERSION
    
    89
    +  image: $IMAGE_PATH
    
    90 90
       script:
    
    91 91
         - .gitlab/ci/scripts/run_linters.py ruff
    
    92 92
       rules:
    
    ... ... @@ -107,7 +107,7 @@ py-ruff:
    107 107
     
    
    108 108
     yaml:
    
    109 109
       extends: .base
    
    110
    -  image: cimg/python:$PYTHON_VERSION
    
    110
    +  image: $IMAGE_PATH
    
    111 111
       script:
    
    112 112
         - .gitlab/ci/scripts/run_linters.py yaml
    
    113 113
       rules:
    
    ... ... @@ -124,7 +124,7 @@ yaml:
    124 124
     
    
    125 125
     shellcheck:
    
    126 126
       extends: .base
    
    127
    -  image: cimg/python:$PYTHON_VERSION
    
    127
    +  image: $IMAGE_PATH
    
    128 128
       script:
    
    129 129
         - .gitlab/ci/scripts/run_linters.py shellcheck
    
    130 130
       rules:
    
    ... ... @@ -140,8 +140,9 @@ shellcheck:
    140 140
     
    
    141 141
     clang-format:
    
    142 142
       extends: .base
    
    143
    -  image: cimg/python:$PYTHON_VERSION
    
    143
    +  image: $IMAGE_PATH
    
    144 144
       script:
    
    145
    +    - ./mach configure --without-wasm-sandboxed-libraries --with-base-browser-version=0.0.0
    
    145 146
         - .gitlab/ci/scripts/run_linters.py clang-format
    
    146 147
       rules:
    
    147 148
         - if: $CI_PIPELINE_SOURCE == 'merge_request_event'
    
    ... ... @@ -161,7 +162,7 @@ clang-format:
    161 162
     
    
    162 163
     rustfmt:
    
    163 164
       extends: .base
    
    164
    -  image: cimg/python:$PYTHON_VERSION
    
    165
    +  image: $IMAGE_PATH
    
    165 166
       script:
    
    166 167
         - .gitlab/ci/scripts/run_linters.py rustfmt
    
    167 168
       rules:
    
    ... ... @@ -177,7 +178,7 @@ rustfmt:
    177 178
     
    
    178 179
     fluent-lint:
    
    179 180
       extends: .base
    
    180
    -  image: cimg/python:$PYTHON_VERSION
    
    181
    +  image: $IMAGE_PATH
    
    181 182
       script:
    
    182 183
         - .gitlab/ci/scripts/run_linters.py fluent-lint
    
    183 184
       rules:
    
    ... ... @@ -194,7 +195,7 @@ fluent-lint:
    194 195
     
    
    195 196
     localization:
    
    196 197
       extends: .base
    
    197
    -  image: cimg/python:$PYTHON_VERSION
    
    198
    +  image: $IMAGE_PATH
    
    198 199
       script:
    
    199 200
         - .gitlab/ci/scripts/run_linters.py l10n
    
    200 201
       rules:
    
    ... ... @@ -213,7 +214,7 @@ localization:
    213 214
     
    
    214 215
     mingw-capitalization:
    
    215 216
       extends: .base
    
    216
    -  image: cimg/python:$PYTHON_VERSION
    
    217
    +  image: $IMAGE_PATH
    
    217 218
       script:
    
    218 219
         - .gitlab/ci/scripts/run_linters.py mingw-capitalization
    
    219 220
       rules:
    
    ... ... @@ -232,7 +233,7 @@ mingw-capitalization:
    232 233
     
    
    233 234
     mscom-init:
    
    234 235
       extends: .base
    
    235
    -  image: cimg/python:$PYTHON_VERSION
    
    236
    +  image: $IMAGE_PATH
    
    236 237
       script:
    
    237 238
         - .gitlab/ci/scripts/run_linters.py mscom-init
    
    238 239
       rules:
    
    ... ... @@ -251,7 +252,7 @@ mscom-init:
    251 252
     
    
    252 253
     file-whitespace:
    
    253 254
       extends: .base
    
    254
    -  image: cimg/python:$PYTHON_VERSION
    
    255
    +  image: $IMAGE_PATH
    
    255 256
       script:
    
    256 257
         - .gitlab/ci/scripts/run_linters.py file-whitespace
    
    257 258
       rules:
    
    ... ... @@ -282,7 +283,7 @@ file-whitespace:
    282 283
     
    
    283 284
     test-manifest:
    
    284 285
       extends: .base
    
    285
    -  image: cimg/python:$PYTHON_VERSION
    
    286
    +  image: $IMAGE_PATH
    
    286 287
       script:
    
    287 288
         - .gitlab/ci/scripts/run_linters.py test-manifest-alpha test-manifest-disable test-manifest-skip-if
    
    288 289
       rules:
    
    ... ... @@ -299,7 +300,7 @@ test-manifest:
    299 300
     
    
    300 301
     trojan-source:
    
    301 302
       extends: .base
    
    302
    -  image: cimg/python:$PYTHON_VERSION
    
    303
    +  image: $IMAGE_PATH
    
    303 304
       script:
    
    304 305
         - .gitlab/ci/scripts/run_linters.py trojan-source
    
    305 306
       rules:
    

  • .gitlab/ci/scripts/run_linters.py
    ... ... @@ -54,7 +54,7 @@ def get_firefox_tag_from_branch_name(branch_name):
    54 54
             return match.group(0).split()[0]
    
    55 55
         else:
    
    56 56
             raise ValueError(
    
    57
    -            f"Failed to find reference specifier for Firefox tag in branch '{branch_name}'."
    
    57
    +            f"Failed to find reference specifier for Firefox tag '{tag}' in branch '{branch_name}'."
    
    58 58
             )
    
    59 59
     
    
    60 60
     
    
    ... ... @@ -98,13 +98,13 @@ if __name__ == "__main__":
    98 98
         )
    
    99 99
         args = parser.parse_args()
    
    100 100
     
    
    101
    -    command = [
    
    102
    -        "./mach",
    
    103
    -        "lint",
    
    104
    -        "-v",
    
    105
    -        *(s for l in args.linters for s in ("-l", l)),
    
    106
    -        *get_list_of_changed_files(),
    
    107
    -    ]
    
    108
    -    result = subprocess.run(command, text=True)
    
    109
    -
    
    110
    -    sys.exit(result.returncode)
    101
    +    changed_files = get_list_of_changed_files()
    
    102
    +    if changed_files:
    
    103
    +        command = ["./mach", "lint", "-v"]
    
    104
    +        for linter in args.linters:
    
    105
    +            command.extend(["-l", linter])
    
    106
    +        command.extend(changed_files)
    
    107
    +        result = subprocess.run(command, text=True)
    
    108
    +        sys.exit(result.returncode)
    
    109
    +    else:
    
    110
    +        print("No files changed, skipping linting.")

  • _______________________________________________
    tor-commits mailing list
    tor-commits@xxxxxxxxxxxxxxxxxxxx
    https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits