An introduction to the Android Tech at dailymotion. All you ever wanted to know about the Dailymotion Android app with a focus on 2 things that set the app appart: automation & storage. Sorry, in french only.
• Script nos workflows • Interface les outils • L’utilitaire du dev • Process d’une release Kinta : le couteau suisse • Intelligence des builds • Sauvegarde des artefacts
//Upload aab on beta track publisherHelper.uploadBetaBundle(aabFile, prodVersionCode,lastReleaseName) //Upload WhatsNew data for this versionCode WhatsNew(publisherHelper).run(listOf(versionCode, transifex_key)) //Send slack info Slack.sendNotif("androiddev", "Version $versionCode is in beta stage") } $ kinta beta 13712 dailymotion transifex_key
//Upload aab on beta track publisherHelper.uploadBetaBundle(aabFile, prodVersionCode,lastReleaseName) //Upload WhatsNew data for this versionCode WhatsNew(publisherHelper).run(listOf(versionCode, transifex_key)) //Send slack info Slack.sendNotif("androiddev", "Version $versionCode is in beta stage") } $ kinta beta 13712 dailymotion transifex_key
//Upload aab on beta track publisherHelper.uploadBetaBundle(aabFile, prodVersionCode,lastReleaseName) //Upload WhatsNew data for this versionCode WhatsNew(publisherHelper).run(listOf(versionCode, transifex_key)) //Send slack info Slack.sendNotif("androiddev", "Version $versionCode is in beta stage") } $ kinta beta 13712 dailymotion transifex_key
//Upload aab on beta track publisherHelper.uploadBetaBundle(aabFile, prodVersionCode,lastReleaseName) //Upload WhatsNew data for this versionCode WhatsNew(publisherHelper).run(listOf(versionCode, transifex_key)) //Send slack info Slack.sendNotif("androiddev", "Version $versionCode is in beta stage") } $ kinta beta 13712 dailymotion transifex_key
//Upload aab on beta track publisherHelper.uploadBetaBundle(aabFile, prodVersionCode,lastReleaseName) //Upload WhatsNew data for this versionCode WhatsNew(publisherHelper).run(listOf(versionCode, transifex_key)) //Send slack info Slack.sendNotif("androiddev", "Version $versionCode is in beta stage") } $ kinta beta 13712 dailymotion transifex_key
the rollout publisherHelper.deployVersion(versionCode, userFraction) //Get all JIRA tickets and comment Changelog.getChangelog(versionCode, module).forEach { jiraUrl -> Jira.postComment(jiraUrl, "$versionCode is rolled out $userFraction %") } //Send slack info Slack.sendNotif("android_team", "$versionCode is rolled out $userFraction %") } $ kinta release 13712 dailymotion 5
the rollout publisherHelper.deployVersion(versionCode, userFraction) //Get all JIRA tickets and comment Changelog.getChangelog(versionCode, module).forEach { jiraUrl -> Jira.postComment(jiraUrl, "$versionCode is rolled out $userFraction %") } //Send slack info Slack.sendNotif("android_team", "$versionCode is rolled out $userFraction %") } $ kinta release 13712 dailymotion 5
the rollout publisherHelper.deployVersion(versionCode, userFraction) //Get all JIRA tickets and comment Changelog.getChangelog(versionCode, module).forEach { jiraUrl -> Jira.postComment(jiraUrl, "$versionCode is rolled out $userFraction %") } //Send slack info Slack.sendNotif("android_team", "$versionCode is rolled out $userFraction %") } $ kinta release 13712 dailymotion 5
the rollout publisherHelper.deployVersion(versionCode, userFraction) //Get all JIRA tickets and comment Changelog.getChangelog(versionCode, module).forEach { jiraUrl -> Jira.postComment(jiraUrl, "$versionCode is rolled out $userFraction %") } //Send slack info Slack.sendNotif("android_team", "$versionCode is rolled out $userFraction %") } $ kinta release 13712 dailymotion 5
TEXT NOT NULL, title TEXT NOT NULL, duration REAL, [..more..] ); selectAll: SELECT * FROM offlineVideo; selectAllMatchingState: SELECT * FROM offlineVideo WHERE state = ?; insertVideo: INSERT OR REPLACE INTO offlineVideo VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?); delete: DELETE FROM offlineVideo WHERE xid = ?; -- build/generated/…/OfflineVideo.kt interface OfflineVideo { val xid: String val title: String val duration: Double? … data class Impl(…) } -- build/generated/…/OfflineVideoQueries.kt class OfflineVideoQueries(private val database: Database, private val driver: SqlDriver) : Transacter(driver) { fun selectAll(): Query<OfflineVideo> fun selectAllMatchingState(state: SyncState?): Query<OfflineVideo> fun delete(xid: String) }