Loads firebase secret from Taskcluster for nightly (#3634)
* Loads firebase secret from Taskcluster for each release * Nightly legacy should use custom set of secretsmaster
parent
c6c9818751
commit
1f12ee0f8c
|
@ -153,7 +153,7 @@ def nightly_to_production_app(is_staging, version_name):
|
||||||
push_tasks = {}
|
push_tasks = {}
|
||||||
|
|
||||||
build_task_id = taskcluster.slugId()
|
build_task_id = taskcluster.slugId()
|
||||||
build_tasks[build_task_id] = BUILDER.craft_assemble_release_task(architectures, build_type, is_staging, version_name, index_channel='nightly')
|
build_tasks[build_task_id] = BUILDER.craft_assemble_release_task(architectures, build_type, is_staging, version_name)
|
||||||
|
|
||||||
signing_task_id = taskcluster.slugId()
|
signing_task_id = taskcluster.slugId()
|
||||||
signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
|
signing_tasks[signing_task_id] = BUILDER.craft_release_signing_task(
|
||||||
|
@ -194,6 +194,7 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
release_parser = subparsers.add_parser('github-release')
|
release_parser = subparsers.add_parser('github-release')
|
||||||
release_parser.add_argument('tag')
|
release_parser.add_argument('tag')
|
||||||
|
release_parser.add_argument('--staging', action='store_true')
|
||||||
|
|
||||||
result = parser.parse_args()
|
result = parser.parse_args()
|
||||||
command = result.command
|
command = result.command
|
||||||
|
@ -214,9 +215,9 @@ if __name__ == "__main__":
|
||||||
beta_semver = re.compile(r'^v\d+\.\d+\.\d+-beta\.\d+$')
|
beta_semver = re.compile(r'^v\d+\.\d+\.\d+-beta\.\d+$')
|
||||||
production_semver = re.compile(r'^v\d+\.\d+\.\d+(-rc\.\d+)?$')
|
production_semver = re.compile(r'^v\d+\.\d+\.\d+(-rc\.\d+)?$')
|
||||||
if beta_semver.match(result.tag):
|
if beta_semver.match(result.tag):
|
||||||
ordered_groups_of_tasks = release('beta', False, version)
|
ordered_groups_of_tasks = release('beta', result.staging, version)
|
||||||
elif production_semver.match(result.tag):
|
elif production_semver.match(result.tag):
|
||||||
ordered_groups_of_tasks = release('production', False, version)
|
ordered_groups_of_tasks = release('production', result.staging, version)
|
||||||
else:
|
else:
|
||||||
raise ValueError('Github tag must be in semver format and prefixed with a "v", '
|
raise ValueError('Github tag must be in semver format and prefixed with a "v", '
|
||||||
'e.g.: "v1.0.0-beta.0" (beta), "v1.0.0-rc.0" (production) or "v1.0.0" (production)')
|
'e.g.: "v1.0.0-beta.0" (beta), "v1.0.0-rc.0" (production) or "v1.0.0" (production)')
|
||||||
|
|
|
@ -5,10 +5,18 @@
|
||||||
import argparse
|
import argparse
|
||||||
import base64
|
import base64
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
import errno
|
||||||
import taskcluster
|
import taskcluster
|
||||||
|
|
||||||
def write_secret_to_file(path, data, key, base64decode=False, append=False, prefix=''):
|
def write_secret_to_file(path, data, key, base64decode=False, append=False, prefix=''):
|
||||||
path = os.path.join(os.path.dirname(__file__), '../../../' + path)
|
path = os.path.join(os.path.dirname(__file__), '../../../' + path)
|
||||||
|
try:
|
||||||
|
os.makedirs(os.path.dirname(path))
|
||||||
|
except OSError as error:
|
||||||
|
if error.errno != errno.EEXIST:
|
||||||
|
raise
|
||||||
|
|
||||||
with open(path, 'a' if append else 'w') as f:
|
with open(path, 'a' if append else 'w') as f:
|
||||||
value = data['secret'][key]
|
value = data['secret'][key]
|
||||||
if base64decode:
|
if base64decode:
|
||||||
|
|
|
@ -40,8 +40,7 @@ class TaskBuilder(object):
|
||||||
self.date = arrow.get(date_string)
|
self.date = arrow.get(date_string)
|
||||||
self.trust_level = trust_level
|
self.trust_level = trust_level
|
||||||
|
|
||||||
def craft_assemble_release_task(self, architectures, build_type, is_staging, version_name, index_channel=None):
|
def craft_assemble_release_task(self, architectures, build_type, is_staging, version_name):
|
||||||
index_channel = index_channel or build_type
|
|
||||||
artifacts = {
|
artifacts = {
|
||||||
'public/target.{}.apk'.format(arch): {
|
'public/target.{}.apk'.format(arch): {
|
||||||
"type": 'file',
|
"type": 'file',
|
||||||
|
@ -55,7 +54,7 @@ class TaskBuilder(object):
|
||||||
if is_staging:
|
if is_staging:
|
||||||
secret_index = 'garbage/staging/project/mobile/fenix'
|
secret_index = 'garbage/staging/project/mobile/fenix'
|
||||||
else:
|
else:
|
||||||
secret_index = 'project/mobile/fenix/{}'.format(index_channel)
|
secret_index = 'project/mobile/fenix/{}'.format(build_type)
|
||||||
|
|
||||||
pre_gradle_commands = (
|
pre_gradle_commands = (
|
||||||
'python automation/taskcluster/helper/get-secret.py -s {} -k {} -f {}'.format(
|
'python automation/taskcluster/helper/get-secret.py -s {} -k {} -f {}'.format(
|
||||||
|
@ -65,6 +64,7 @@ class TaskBuilder(object):
|
||||||
('sentry_dsn', '.sentry_token'),
|
('sentry_dsn', '.sentry_token'),
|
||||||
('leanplum', '.leanplum_token'),
|
('leanplum', '.leanplum_token'),
|
||||||
('adjust', '.adjust_token'),
|
('adjust', '.adjust_token'),
|
||||||
|
('firebase', 'app/src/{}/res/values/firebase.xml'.format(build_type)),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue