--- kind: pipeline name: code quality type: docker platform: os: linux arch: arm64 clone: skip_verify: true steps: - name: run code analysis pull: always image: 2martens/qodana-jvm-community-drone-plugin:2023.2 settings: qodana_token: from_secret: qodana_token args: --baseline qodana.sarif.json --fail-threshold 0 volumes: - name: cache path: /data/cache volumes: - name: cache host: path: /var/lib/drone/cache trigger: event: include: - pull_request - custom --- kind: pipeline name: build image type: docker platform: os: linux arch: arm64 clone: disable: true steps: - name: clone image: alpine/git environment: SSH_KEY: from_secret: private_ssh_key commands: - mkdir $HOME/.ssh - echo "$SSH_KEY" > $HOME/.ssh/id_ed25519 - chmod 600 $HOME/.ssh/id_ed25519 - touch $HOME/.ssh/known_hosts - chmod 600 $HOME/.ssh/known_hosts - ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null - git clone ssh://giteajim@git.2martens.de:22/2martens/wahlrecht.git . - git checkout $DRONE_COMMIT - name: build Docker container image: gradle:8.2-jdk17 environment: USERNAME: from_secret: docker_username PASSWORD: from_secret: docker_password SSH_KEY: from_secret: private_ssh_key volumes: - name: cache path: /home/gradle/.gradle commands: - mkdir $HOME/.ssh - echo "$SSH_KEY" > $HOME/.ssh/id_ed25519 - chmod 600 $HOME/.ssh/id_ed25519 - touch $HOME/.ssh/known_hosts - chmod 600 $HOME/.ssh/known_hosts - ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null - ./gradlew -Prelease.useLastTag=true final jib volumes: - name: cache host: path: /var/lib/drone/cache/.gradle trigger: event: include: - tag --- kind: pipeline name: deploy image type: docker platform: os: linux arch: arm64 clone: disable: true steps: - name: clone image: alpine/git environment: SSH_KEY: from_secret: private_ssh_key commands: - mkdir $HOME/.ssh - echo "$SSH_KEY" > $HOME/.ssh/id_ed25519 - chmod 600 $HOME/.ssh/id_ed25519 - touch $HOME/.ssh/known_hosts - chmod 600 $HOME/.ssh/known_hosts - ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null - git clone ssh://giteajim@git.2martens.de:22/2martens/cloud-configuration.git . - git checkout main - name: update image version image: alpine commands: - mkdir $HOME/bin - wget https://github.com/mikefarah/yq/releases/latest/download/yq_linux_arm64 -O $HOME/bin/yq && chmod +x $HOME/bin/yq - sed -i -r "s/(tag:).*/\1\ \"${DRONE_SEMVER}\"/" argocd/wahlrecht/${DRONE_DEPLOY_TO}/overwrite_values.yaml - cd argocd/wahlrecht/${DRONE_DEPLOY_TO} && $HOME/bin/yq '. *= load("overwrite_values.yaml")' default_values.yaml > values.yaml - name: save modified variable file image: alpine/git environment: SSH_KEY: from_secret: private_ssh_key commands: - mkdir $HOME/.ssh - echo "$SSH_KEY" > $HOME/.ssh/id_ed25519 - chmod 600 $HOME/.ssh/id_ed25519 - touch $HOME/.ssh/known_hosts - chmod 600 $HOME/.ssh/known_hosts - ssh-keyscan -H git.2martens.de > $HOME/.ssh/known_hosts 2>/dev/null - git add argocd/wahlrecht/${DRONE_DEPLOY_TO}/* - git diff-index --quiet HEAD || git commit -m "[Drone] Changed wahlrecht_image_version to ${DRONE_SEMVER}" - git push origin main trigger: target: - test event: include: - promote - rollback