kind.yml 5.51 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
loader: taskgraph.loader.transform:loader

transforms:
    - fenix_taskgraph.transforms.build:transforms
    - taskgraph.transforms.job:transforms
    - taskgraph.transforms.task:transforms

12
13
14
15
kind-dependencies:
    - toolchain


16
job-defaults:
17
18
19
20
21
22
23
24
    # Builds generate multiple APKs with different ABIs. For each APK described
    # by `gradlew printVariant`, an artifact will be generated. `variant` and
    # the per-apk config from `printVariant` can be used as substitutions in
    # `name` and `path`.
    apk-artifact-template:
        type: file
        name: public/build/{abi}/{geckoview_engine}/target.apk
        path: '/builds/worker/checkouts/src/app/build/outputs/apk/{geckoview_engine}/{gradle_build_type}/{fileName}'
25
    description: Build Fenix from source code.
26
27
28
    fetches:
        toolchain:
            - android-sdk-linux
29
            - android-gradle-dependencies
30
31
32
33
    run:
        using: gradlew
        use-caches: false
    run-on-tasks-for: []
34
35
36
37
38
39
40
41
42
43
    treeherder:
        kind: build
        symbol: B
        platform: android-all/opt
        tier: 1
    worker-type: b-android
    worker:
        docker-image: {in-tree: base}
        max-run-time: 7200
        chain-of-trust: true
44

45
46
47
48
49
50
51
52
53
54
55
56

jobs:
    debug:
        attributes:
            code-review: true
        run-on-tasks-for: [github-pull-request, github-push]
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: debug
        treeherder:
            symbol: debug(B)

57
    android-test-debug:
Johan Lorenzo's avatar
Johan Lorenzo committed
58
59
60
61
62
63
64
65
66
67
        attributes:
            code-review: true
        run-on-tasks-for: [github-pull-request, github-push]
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: androidTest
        apk-artifact-template:
            # 2 differences here: "androidTest/" is added and "{gradle_build_type}" is forced to "debug"
            path: '/builds/worker/checkouts/src/app/build/outputs/apk/androidTest/{geckoview_engine}/debug/{fileName}'
        treeherder:
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
            symbol: debug(Bat)

    # android-test-nightly, while still being a debug build, is meant to be signed with the nightly
    # key. The Firebase testing infrastructure requires both the androidTest APK and the APK under
    # test to be signed with the same key. Thus, the nightly APK being signed with nightly means
    # we need an androidTest APK with the same signature.
    #
    # TODO: See if we can tweak the signing kind to make 2 signing jobs out of a single `android-test`
    # job.
    android-test-nightly:
        attributes:
            nightly: true
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: androidTest
        apk-artifact-template:
            # 2 differences here: "androidTest/" is added and "{gradle_build_type}" is forced to "debug"
            path: '/builds/worker/checkouts/src/app/build/outputs/apk/androidTest/{geckoview_engine}/debug/{fileName}'
        treeherder:
            symbol: nightly(Bat)
Johan Lorenzo's avatar
Johan Lorenzo committed
88

89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
    performance-test:
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: forPerformanceTest
        treeherder:
            symbol: forPerformanceTest(B)

    nightly:
        attributes:
            nightly: true
        include-nightly-version: true
        include-shippable-secrets: true
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: fenixNightly
        treeherder:
            symbol: nightly(B)

    beta:
        attributes:
            release-type: beta
110
        include-release-version: true
111
        include-shippable-secrets: true
112
        filter-incomplete-translations: true
113
114
115
116
117
118
119
120
121
122
        run:
            geckoview-engine: geckoBeta
            gradle-build-type: fenixBeta
        run-on-tasks-for: [github-release]
        treeherder:
            symbol: beta(B)

    production:
        attributes:
            release-type: production
123
        include-release-version: true
124
        include-shippable-secrets: true
125
        filter-incomplete-translations: true
126
127
128
129
130
131
        run:
            geckoview-engine: geckoBeta
            gradle-build-type: fenixProduction
        run-on-tasks-for: [github-release]
        treeherder:
            symbol: production(B)
132
133
134
135
136
137
138
139
140
141
142
143
144
145

    fennec-nightly:
        attributes:
            nightly: true
        include-nightly-version: true
        include-shippable-secrets: true
        run:
            geckoview-engine: geckoNightly
            gradle-build-type: fennecNightly
        treeherder:
            symbol: nightlyFennec(B)

    fennec-beta:
        attributes:
146
            release-type: beta
147
148
        include-release-version: true
        include-shippable-secrets: true
149
        filter-incomplete-translations: true
150
151
152
153
154
155
156
157
158
159
        run:
            geckoview-engine: geckoBeta
            gradle-build-type: fennecBeta
        treeherder:
            symbol: betaFennec(B)

    fennec-production:
        attributes:
            # TODO replace `nightly: true` by `release-type: production` once the data migration
            # testing is over
160
            # TODO when making the above change, uncomment `filter-incomplete-translations: true`
161
162
163
            nightly: true
        include-release-version: true
        include-shippable-secrets: true
164
#        filter-incomplete-translations: true
165
166
167
168
169
        run:
            geckoview-engine: geckoBeta
            gradle-build-type: fennecProduction
        treeherder:
            symbol: productionFennec(B)