123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- # Write CI cache once for faster runs
- 'write cache: ruby':
- stage: pre
- cache: !reference [.cache, read_write_ruby]
- before_script:
- - !reference [.scripts, source_rvm]
- script:
- - !reference [.scripts, bundle_install]
- after_script: []
- 'write cache: nodejs':
- stage: pre
- cache: !reference [.cache, read_write_nodejs]
- before_script: []
- script:
- - !reference [.scripts, pnpm_install_all]
- after_script: []
- 'push to github':
- stage: pre
- cache: []
- rules:
- - if: $CI_COMMIT_REF_NAME =~ /^(private|cherry-pick-|renovate|dependabot)/
- when: never
- - when: always
- before_script:
- - test -d $HOME/.ssh || mkdir $HOME/.ssh
- - ssh-keyscan github.com >> $HOME/.ssh/known_hosts
- - eval $(ssh-agent -s)
- - echo "$PUSH_TO_GITHUB_SSH_PRIVATE_KEY" | ssh-add -
- - ssh-add -l
- script:
- - git fetch --unshallow
- - script/build/sync_repo.sh git@github.com:zammad/zammad.git
- after_script: []
- 'publish source archives':
- stage: pre
- tags:
- - push-to-ftp
- cache: []
- rules:
- - if: $CI_COMMIT_TAG
- when: always
- - if: $CI_COMMIT_BRANCH == "stable"
- when: always
- - when: never
- before_script:
- - test -d $HOME/.ssh || mkdir $HOME/.ssh
- - ssh-keyscan ftp.zammad.com >> $HOME/.ssh/known_hosts
- - eval $(ssh-agent -s)
- - echo "$FTP_ZAMMAD_COM_SSH_PRIVATE_KEY" | ssh-add -
- - ssh-add -l
- script:
- - script/build/deploy_archives.sh
- after_script: []
- # This job will create commits in pipelines pushed from Weblate.
- # It re-generates the catalog, and any additional files such as view templates and chat assets.
- 'push translations update commit':
- stage: pre
- needs: ['write cache: ruby', 'write cache: nodejs']
- rules:
- - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_MESSAGE =~ /Translations update from translations[.]zammad[.]org/
- when: always
- - when: never
- cache:
- - !reference [.cache, read_only_ruby]
- - !reference [.cache, read_only_nodejs]
- services:
- - !reference [.services, postgresql]
- before_script:
- - !reference [.scripts, source_rvm]
- - !reference [.scripts, bundle_install]
- - !reference [.scripts, configure_environment]
- - !reference [.scripts, zammad_db_init]
- - !reference [.scripts, pnpm_install_chat]
- variables:
- ZAMMAD_SAFE_MODE: 1
- script:
- - bundle exec rails generate zammad:translation_catalog --full
- - (cd public/assets/chat && pnpm exec gulp build)
- - git status
- - git config user.email "noreply@weblate.org"
- - git config user.name "Weblate"
- # TODO drop usage of dedicated access token when CI_JOB_TOKEN support for commit pushing was added to weblate
- # https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#git-push-to-your-project-repository
- - git remote add gitlab_origin https://oauth2:${WEBLATE_ACCESS_TOKEN}@${CI_SERVER_FQDN}/${CI_PROJECT_PATH}.git
- - git add .
- - git status --porcelain | grep "^[MA]" || exit 0 # check if files were added/changed
- - 'git commit -m "Maintenance: Update translated files and catalog"'
- - git show --stat
- - git push gitlab_origin HEAD:$CI_COMMIT_REF_NAME
|