Loading .gitlab-ci.yml 0 → 100644 +77 −0 Original line number Original line Diff line number Diff line image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest" stages: - update-from-upstream - build before_script: - apt update && apt-get install libncurses5 -y - export GRADLE_USER_HOME=$(pwd)/.gradle - chmod +x ./gradlew cache: key: ${CI_PROJECT_ID} paths: - .gradle/ build: stage: build script: - ./gradlew build -x test artifacts: paths: - app/build/outputs/apk .update-from-upstream: image: registry.gitlab.e.foundation/e/tools/docker-tools:latest stage: update-from-upstream rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == $LOCAL_BRANCH' variables: CI_PROJECT_SSH_URL: git@gitlab.e.foundation:$CI_PROJECT_PATH GIT_STRATEGY: none before_script: - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - echo "${SSH_E_ROBOT_PRIVATE_KEY}" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts - echo "${SSH_KNOWN_HOSTS}" - chmod 644 ~/.ssh/known_hosts - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name "$GITLAB_USER_NAME" - cd $CI_BUILD_DIR - rm -rf $CI_PROJECT_DIR - git clone $CI_PROJECT_SSH_URL $CI_PROJECT_DIR - cd $CI_PROJECT_DIR script: - git config http.sslverify false # update $UPSTREAM_BRANCH & tags - git fetch origin - git checkout $UPSTREAM_BRANCH - git remote add upstream $UPSTREAM_URL - git fetch upstream - git pull upstream $UPSTREAM_DEFAULT_BRANCH - git push origin $UPSTREAM_BRANCH - git push origin --tags # checkout to latest tag commit to $TEMP_LATEST_TAG_BRANCH - git checkout $(git describe --tags --abbrev=0) - git checkout -b $TEMP_LATEST_TAG_BRANCH # merge $LOCAL_BRANCH with $TEMP_LATEST_TAG_BRANCH & push - git checkout $LOCAL_BRANCH - git merge $TEMP_LATEST_TAG_BRANCH - git push origin $LOCAL_BRANCH # remove unwanted local branch & remote - git branch -D $TEMP_LATEST_TAG_BRANCH - git remote remove upstream update-default-branch: extends: .update-from-upstream variables: LOCAL_BRANCH: master UPSTREAM_BRANCH: upstream/master UPSTREAM_DEFAULT_BRANCH: master UPSTREAM_URL: https://git.code.sf.net/p/opencamera/code TEMP_LATEST_TAG_BRANCH: latest_upstream_tag_branch allow_failure: true Loading
.gitlab-ci.yml 0 → 100644 +77 −0 Original line number Original line Diff line number Diff line image: "registry.gitlab.e.foundation/e/os/docker-android-apps-cicd:latest" stages: - update-from-upstream - build before_script: - apt update && apt-get install libncurses5 -y - export GRADLE_USER_HOME=$(pwd)/.gradle - chmod +x ./gradlew cache: key: ${CI_PROJECT_ID} paths: - .gradle/ build: stage: build script: - ./gradlew build -x test artifacts: paths: - app/build/outputs/apk .update-from-upstream: image: registry.gitlab.e.foundation/e/tools/docker-tools:latest stage: update-from-upstream rules: - if: '$CI_PIPELINE_SOURCE == "schedule" && $CI_COMMIT_REF_NAME == $LOCAL_BRANCH' variables: CI_PROJECT_SSH_URL: git@gitlab.e.foundation:$CI_PROJECT_PATH GIT_STRATEGY: none before_script: - 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )' - eval $(ssh-agent -s) - echo "${SSH_E_ROBOT_PRIVATE_KEY}" | tr -d '\r' | ssh-add - - mkdir -p ~/.ssh - chmod 700 ~/.ssh - echo "${SSH_KNOWN_HOSTS}" > ~/.ssh/known_hosts - echo "${SSH_KNOWN_HOSTS}" - chmod 644 ~/.ssh/known_hosts - git config --global user.email $GITLAB_USER_EMAIL - git config --global user.name "$GITLAB_USER_NAME" - cd $CI_BUILD_DIR - rm -rf $CI_PROJECT_DIR - git clone $CI_PROJECT_SSH_URL $CI_PROJECT_DIR - cd $CI_PROJECT_DIR script: - git config http.sslverify false # update $UPSTREAM_BRANCH & tags - git fetch origin - git checkout $UPSTREAM_BRANCH - git remote add upstream $UPSTREAM_URL - git fetch upstream - git pull upstream $UPSTREAM_DEFAULT_BRANCH - git push origin $UPSTREAM_BRANCH - git push origin --tags # checkout to latest tag commit to $TEMP_LATEST_TAG_BRANCH - git checkout $(git describe --tags --abbrev=0) - git checkout -b $TEMP_LATEST_TAG_BRANCH # merge $LOCAL_BRANCH with $TEMP_LATEST_TAG_BRANCH & push - git checkout $LOCAL_BRANCH - git merge $TEMP_LATEST_TAG_BRANCH - git push origin $LOCAL_BRANCH # remove unwanted local branch & remote - git branch -D $TEMP_LATEST_TAG_BRANCH - git remote remove upstream update-default-branch: extends: .update-from-upstream variables: LOCAL_BRANCH: master UPSTREAM_BRANCH: upstream/master UPSTREAM_DEFAULT_BRANCH: master UPSTREAM_URL: https://git.code.sf.net/p/opencamera/code TEMP_LATEST_TAG_BRANCH: latest_upstream_tag_branch allow_failure: true