Skip to content

Commit

Permalink
Merge pull request #4118 from Catrobat/release-v1.0.1
Browse files Browse the repository at this point in the history
Release v1.0.1
  • Loading branch information
wslany authored Apr 16, 2021
2 parents fff3e26 + 92de9df commit 127516f
Show file tree
Hide file tree
Showing 1,085 changed files with 81,586 additions and 55,645 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/sync_crowdin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ** Synchronize Crowdin translation **
#
# Crowdin is a platform to manage the translation process in the Catroweb project:
#
# 1. We upload our english (base) translation files
# 2. Users worldwide translate our provided strings
# 3. We download the translations (In case translations are missing english is the fallback)
#
# This GitHub Action uses the official action from Crowdin to automate step 1 and 2.
# A pull request is created/updated automatically containing all new translations.
#
# - Secrets required!
#
name: Synchronize Crowdin

#
# New base strings could be uploaded on the merge of a new feature.
# However, the translation download process is independent from a pull request.
# Hence, keeping a consistent schedule once a day is more than enough.
#
# In case, an additional run is required, a manual dispatch trigger is also enabled.
#
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:

jobs:

#
# - Two-way synchronization:
# -- In case of new strings in the repo, they are uploaded to Crowdin
# -- In case of new translation, a pull request containing all changes will be created or updated
#
# - The crowdin configuration is in `crowdin.yml`. However, without credentials!
#
# - The credentials are provided as secrets to the action as environment variables.
# In case they must be updated, talk to a product owner.
#
synchronize-with-crowdin:
# Only should run on the main repo. (Running without the secrets would result in a fail anyway!)
if: github.repository == 'Catrobat/Catroid'

name: Synchronize Crowdin Translations
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2

- uses: crowdin/github-action@1.0.10
with:
upload_translations: true
download_translations: true
config: 'crowdin.yml'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
26 changes: 12 additions & 14 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ def webTestUrlParameter() {

def allFlavoursParameters() {
return env.BUILD_ALL_FLAVOURS?.toBoolean() ? 'assembleCreateAtSchoolDebug ' +
'assembleLunaAndCatDebug assemblePhiroDebug assembleEmbroideryDesignerDebug' : ''
'assembleLunaAndCatDebug assemblePhiroDebug assembleEmbroideryDesignerDebug ' +
'assemblePocketCodeBetaDebug' : ''
}

def useDebugLabelParameter(defaultLabel) {
Expand Down Expand Up @@ -126,7 +127,7 @@ pipeline {

stage('Static Analysis') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh './gradlew pmd checkstyle lintCatroidDebug detekt'
}
}
Expand All @@ -144,21 +145,18 @@ pipeline {

stage('Unit Tests') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
sh './gradlew -PenableCoverage jacocoTestCatroidDebugUnitTestReport'
}
}

post {
always {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh './gradlew -PenableCoverage jacocoTestCatroidDebugUnitTestReport --full-stacktrace'
sh 'mkdir -p catroid/build/reports/jacoco/jacocoTestCatroidDebugUnitTestReport/'
sh 'touch catroid/build/reports/jacoco/jacocoTestCatroidDebugUnitTestReport/jacocoTestCatroidDebugUnitTestReport.xml'
junitAndCoverage 'catroid/build/reports/jacoco/jacocoTestCatroidDebugUnitTestReport', 'jacocoTestCatroidDebugUnitTestReport.xml', 'unit'
}
}
}

stage('Instrumented Unit Tests') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh '''./gradlew -PenableCoverage -PlogcatFile=instrumented_unit_logcat.txt -Pemulator=android28 \
startEmulator createCatroidDebugAndroidTestCoverageReport \
-Pandroid.testInstrumentationRunnerArguments.class=org.catrobat.catroid.testsuites.LocalHeadlessTestSuite'''
Expand All @@ -174,7 +172,7 @@ pipeline {

stage('Testrunner Tests') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh '''./gradlew -PenableCoverage -PlogcatFile=testrunner_logcat.txt -Pemulator=android28 \
startEmulator createCatroidDebugAndroidTestCoverageReport \
-Pandroid.testInstrumentationRunnerArguments.package=org.catrobat.catroid.catrobattestrunner'''
Expand All @@ -194,7 +192,7 @@ pipeline {
}

steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh '''./gradlew -PenableCoverage -PlogcatFile=quarantined_logcat.txt -Pemulator=android28 \
startEmulator createCatroidDebugAndroidTestCoverageReport \
-Pandroid.testInstrumentationRunnerArguments.class=org.catrobat.catroid.testsuites.UiEspressoQuarantineTestSuite'''
Expand All @@ -210,8 +208,8 @@ pipeline {

stage('RTL Tests') {
steps {
catchError(buildResult: 'FAILURE', stageResult: 'FAILURE') {
sh '''./gradlew -PenableCoverage -PlogcatFile=rtltests_logcat.txt -Pemulator=android24 \
catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
sh '''./gradlew -PenableCoverage -PlogcatFile=rtltests_logcat.txt -Pemulator=android28 \
startEmulator createCatroidDebugAndroidTestCoverageReport \
-Pandroid.testInstrumentationRunnerArguments.class=org.catrobat.catroid.testsuites.UiEspressoRtlTestSuite'''
}
Expand Down
8 changes: 4 additions & 4 deletions Jenkinsfile.buildMetadata
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pipeline {
stage('Setup Translations') {
steps {
script {
if (env.flavor == 'Playground') {
if (env.flavor == 'PocketCodeBeta') {
sh '''
set +x
./gradlew generateCrowdinMetadataCatroid -PcrowdinKey=$crowdinKey
Expand All @@ -51,7 +51,7 @@ pipeline {
stage('Create Screenshots') {
steps {
script {
if (env.flavor == 'Playground') {
if (env.flavor == 'PocketCodeBeta') {
sh './gradlew generateScreenshotsCatroid'
} else {
sh './gradlew generateScreenshots${flavor}'
Expand Down Expand Up @@ -107,8 +107,8 @@ pipeline {
}
steps {
script {
if (env.flavor == 'Playground') {
echo 'Playground cannot be promoted to production!'
if (env.flavor == 'PocketCodeBeta') {
echo 'PocketCodeBeta cannot be promoted to production!'
} else {
// deactivated for testing to not publish by accident
//sh 'fastlane android promote_${flavor}'
Expand Down
7 changes: 4 additions & 3 deletions Jenkinsfile.releaseAPK
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,15 @@ pipeline {
-PsigningKeyAlias=$signingKeyAlias \
-PsigningKeyPassword=$signingKeyPassword \
'''
} else if (env.flavor == 'Playground') {
} else if (env.flavor == 'PocketCodeBeta') {
sh '''
set +x
./gradlew copyAndroidNatives assembleCatroidSignedRelease \
-PsigningKeystore=${SIGNING_KEYSTORE} \
-PsigningKeystorePassword=$signingKeystorePassword \
-PsigningKeyAlias=$signingKeyAlias \
-PsigningKeyPassword=$signingKeyPassword \
-Pplayground=true
-PpocketCodeBeta=true
'''
} else {
sh '''
Expand Down Expand Up @@ -89,7 +89,8 @@ pipeline {
fastlane android upload_APK_CreateAtSchool
fastlane android upload_APK_EmbroideryDesigner
fastlane android upload_APK_LunaAndCat
fastlane android upload_APK_Phiro
fastlane android upload_APK_Phiro
fastlane android upload_APK_PocketCodeBeta
'''
} else {
sh 'fastlane android upload_APK_${flavor}'
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Start setting up the working environment by following the instructions: https://

Also make sure to read our guidelines for [creating a pull request](https://github.com/Catrobat/Catroid/wiki/Creating-a-pull-request)

A first training ticket usually consists of writing a new Catrobat language test, see https://jira.catrob.at/browse/CATROID-390 for details.


# Resources and links #
* [Google Play Store Download](https://catrob.at/gp)
Expand Down
4 changes: 3 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
ext.kotlin_version = '1.3.60'
ext.kotlin_version = '1.4.10'
ext.koin_version = '2.1.5'
ext.lifecycle_version = '2.2.0'
repositories {
google()
jcenter()
Expand Down
Loading

0 comments on commit 127516f

Please sign in to comment.