1
0
Fork 0

Loads firebase secret from Taskcluster for nightly (#3634)

* Loads firebase secret from Taskcluster for each release

* Nightly legacy should use custom set of secrets
master
Mitchell Hentges 2019-07-10 10:32:33 -07:00 committed by GitHub
parent c6c9818751
commit 1f12ee0f8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 6 deletions

View File

@ -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)')

View File

@ -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:

View File

@ -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)),
) )
) )