--- kind: pipeline name: test-set-desktop platform: arch: amd64 steps: - name: reveal-env pull: always image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - uname -r - python --version - robot --version || echo "rf loves to exit with code $(robot --version 2>&1 >/dev/null; echo $?)" - chromium-browser --version - chromedriver --version - mkdir -pv archives - mkdir -pv results/${DRONE_STAGE_NAME} - name: test01 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test01 - robot -T -d results/${DRONE_STAGE_NAME}/test01 test01.robot when: status: - success - failure depends_on: - reveal-env - name: test02 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test02 - robot -T -d results/${DRONE_STAGE_NAME}/test02 test02.robot when: status: - success - failure depends_on: - reveal-env - name: test03 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test03 - robot -T -d results/${DRONE_STAGE_NAME}/test03 test03.robot when: status: - success - failure depends_on: - reveal-env - name: test04 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test04 - robot -T -d results/${DRONE_STAGE_NAME}/test04 test04.robot when: status: - success - failure depends_on: - reveal-env - name: test05 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test05 - robot -T -d results/${DRONE_STAGE_NAME}/test05 test05.robot when: status: - success - failure depends_on: - reveal-env - name: test06 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test06 - robot -T -d results/${DRONE_STAGE_NAME}/test06 test06.robot when: status: - success - failure depends_on: - reveal-env - name: test07 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test07 - robot -T -d results/${DRONE_STAGE_NAME}/test07 test07.robot when: status: - success - failure depends_on: - reveal-env - name: test08 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test08 - robot -T -d results/${DRONE_STAGE_NAME}/test08 test08.robot when: status: - success - failure depends_on: - reveal-env - name: test09 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test09 - robot -T -d results/${DRONE_STAGE_NAME}/test09 test09.robot when: status: - success - failure depends_on: - reveal-env - name: test10 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test10 - robot -T -d results/${DRONE_STAGE_NAME}/test10 test10.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test11 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test11 - robot -T -d results/${DRONE_STAGE_NAME}/test11 test11.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test12 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test12 - robot -T -d results/${DRONE_STAGE_NAME}/test12 test12.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test13 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test13 - robot -T -d results/${DRONE_STAGE_NAME}/test13 test13.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test14 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test14 - robot -T -d results/${DRONE_STAGE_NAME}/test14 test14.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test15 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test15 - robot -T -d results/${DRONE_STAGE_NAME}/test15 test15.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test16 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test16 - robot -T -d results/${DRONE_STAGE_NAME}/test16 test16.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test17 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test17 - robot -T -d results/${DRONE_STAGE_NAME}/test17 test17.robot when: status: - success - failure depends_on: - reveal-env - test16 - name: test18 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test18 - robot -T -d results/${DRONE_STAGE_NAME}/test18 test18.robot when: status: - success - failure depends_on: - reveal-env - test09 - name: test19 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test19 - robot -T -d results/${DRONE_STAGE_NAME}/test19 test19.robot when: status: - success - failure depends_on: - reveal-env - test09 - test18 - name: test00 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/test00 - robot -T -d results/${DRONE_STAGE_NAME}/test00 test00.robot when: status: - success - failure depends_on: - reveal-env - test09 - test10 - test11 - test12 - test13 - test14 - test15 - test16 - test17 - test18 - test19 - name: copy-cache pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: cache path: /run/cache commands: - mkdir -pv /run/cache/results-${DRONE_COMMIT_SHA} - cp -vR results/${DRONE_STAGE_NAME} /run/cache/results-${DRONE_COMMIT_SHA}/${DRONE_STAGE_NAME} when: status: - success - failure depends_on: - test01 - test02 - test03 - test04 - test05 - test06 - test07 - test08 - test09 - test10 - test11 - test12 - test13 - test14 - test15 - test16 - test17 - test18 - test19 - test00 volumes: - name: cache host: path: /run/cache --- kind: pipeline name: test-set-mobile platform: arch: amd64 trigger: status: - success - failure depends_on: - test-set-desktop steps: - name: reveal-env pull: always image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - uname -r - python --version - robot --version || echo "rf loves to exit with code $(robot --version 2>&1 >/dev/null; echo $?)" - mkdir -pv archives - mkdir -pv results/${DRONE_STAGE_NAME} - name: m-test01 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test01 - robot -T -d results/${DRONE_STAGE_NAME}/m-test01 m-test01.robot when: status: - success - failure depends_on: - reveal-env - name: m-test02 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test02 - robot -T -d results/${DRONE_STAGE_NAME}/m-test02 m-test02.robot when: status: - success - failure depends_on: - reveal-env - name: m-test03 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test03 - robot -T -d results/${DRONE_STAGE_NAME}/m-test03 m-test03.robot when: status: - success - failure depends_on: - reveal-env - name: m-test04 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test04 - robot -T -d results/${DRONE_STAGE_NAME}/m-test04 m-test04.robot when: status: - success - failure depends_on: - reveal-env - name: m-test05 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test05 - robot -T -d results/${DRONE_STAGE_NAME}/m-test05 m-test05.robot when: status: - success - failure depends_on: - reveal-env - name: m-test06 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test06 - robot -T -d results/${DRONE_STAGE_NAME}/m-test06 m-test06.robot when: status: - success - failure depends_on: - reveal-env - name: m-test07 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test07 - robot -T -d results/${DRONE_STAGE_NAME}/m-test07 m-test07.robot when: status: - success - failure depends_on: - reveal-env - name: m-test08 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test08 - robot -T -d results/${DRONE_STAGE_NAME}/m-test08 m-test08.robot when: status: - success - failure depends_on: - reveal-env - name: m-test09 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test09 - robot -T -d results/${DRONE_STAGE_NAME}/m-test09 m-test09.robot when: status: - success - failure depends_on: - reveal-env - name: m-test10 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test10 - robot -T -d results/${DRONE_STAGE_NAME}/m-test10 m-test10.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test11 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test11 - robot -T -d results/${DRONE_STAGE_NAME}/m-test11 m-test11.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test12 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test12 - robot -T -d results/${DRONE_STAGE_NAME}/m-test12 m-test12.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test13 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test13 - robot -T -d results/${DRONE_STAGE_NAME}/m-test13 m-test13.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test14 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test14 - robot -T -d results/${DRONE_STAGE_NAME}/m-test14 m-test14.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test15 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test15 - robot -T -d results/${DRONE_STAGE_NAME}/m-test15 m-test15.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test16 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test16 - robot -T -d results/${DRONE_STAGE_NAME}/m-test16 m-test16.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test17 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test17 - robot -T -d results/${DRONE_STAGE_NAME}/m-test17 m-test17.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test18 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test18 - robot -T -d results/${DRONE_STAGE_NAME}/m-test18 m-test18.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - name: m-test19 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test19 - robot -T -d results/${DRONE_STAGE_NAME}/m-test19 m-test19.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - m-test18 - name: m-test00 pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: shm path: /dev/shm commands: - mkdir -pv results/${DRONE_STAGE_NAME}/m-test00 - robot -T -d results/${DRONE_STAGE_NAME}/m-test00 m-test00.robot when: status: - success - failure depends_on: - reveal-env - m-test09 - m-test10 - m-test11 - m-test12 - m-test13 - m-test14 - m-test15 - m-test16 - m-test17 - m-test18 - m-test19 - name: copy-cache pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: cache path: /run/cache commands: - mkdir -pv /run/cache/results-${DRONE_COMMIT_SHA} - cp -vR results/${DRONE_STAGE_NAME} /run/cache/results-${DRONE_COMMIT_SHA}/${DRONE_STAGE_NAME} - cp -v /drone/src/docs /run/cache/results-${DRONE_COMMIT_SHA} when: status: - success - failure depends_on: - m-test01 - m-test02 - m-test03 - m-test04 - m-test05 - m-test06 - m-test07 - m-test08 - m-test09 - m-test10 - m-test11 - m-test12 - m-test13 - m-test14 - m-test15 - m-test16 - m-test17 - m-test18 - m-test19 - m-test00 volumes: - name: cache host: path: /run/cache --- kind: pipeline name: archive platform: os: linux arch: amd64 trigger: branch: - master - dev event: - push - tag status: - success - failure depends_on: - test-set-desktop - test-set-mobile clone: disable: true steps: - name: tar-zstd-gpg pull: if-not-exists image: immawanderer/alpine-rf:latest volumes: - name: cache path: /run/cache commands: - apk add --no-cache tar curl zstd gnupg - mkdir -pv archives - ( cd /run/cache; tar cfv /drone/src/archives/results-${DRONE_COMMIT_SHA:0:7}.tar.zstd results-${DRONE_COMMIT_SHA} --zstd ) - ls -lah archives/results-${DRONE_COMMIT_SHA:0:7}.tar.zstd - curl -sS https://dotya.ml/store/0x28bd2388.asc | gpg --quiet --import - - gpg -eR 28bd2388 --trust-model always archives/results-${DRONE_COMMIT_SHA:0:7}.tar.zstd - ( cd archives; b3sum results-${DRONE_COMMIT_SHA:0:7}.tar.zstd.gpg > results-${DRONE_COMMIT_SHA:0:7}.tar.zstd.gpg-B3SUM ) - ( cd archives; date +%Y-%m-%dT%H-%M > dat_date ) - ( cd archives; tar cfv results-$(cat dat_date)-${DRONE_COMMIT_SHA:0:7}.tar.zstd results-${DRONE_COMMIT_SHA:0:7}.tar.zstd.gpg results-${DRONE_COMMIT_SHA:0:7}.tar.zstd.gpg-B3SUM --zstd --remove-files ) - rm archives/results-${DRONE_COMMIT_SHA:0:7}.tar.zstd - cp -vR archives /run/cache - rm -r /run/cache/results-${DRONE_COMMIT_SHA} when: status: - success - failure volumes: - name: cache host: path: /run/cache --- kind: pipeline name: upload platform: os: linux arch: amd64 clone: disable: true trigger: branch: - master - dev event: - push - tag status: - success - failure depends_on: - archive steps: - name: backblaze-b2 pull: always image: immawanderer/alpine-rf:latest volumes: - name: cache path: /run/cache environment: B2_BUCKET_NAME: from_secret: B2_BUCKET_NAME B2_KEY_ID: from_secret: B2_KEY_ID B2_KEY: from_secret: B2_KEY commands: - b2 authorize-account $B2_KEY_ID $B2_KEY - ( cd /run/cache/archives; b2 upload-file --contentType 'application/zstd' "$B2_BUCKET_NAME" "results-$(cat dat_date)-${DRONE_COMMIT_SHA:0:7}.tar.zstd" "results/results-$(cat dat_date)-${DRONE_COMMIT_SHA:0:7}.tar.zstd" > /dev/null 2>&1 ) - rm /run/cache/archives/*.tar.zstd /run/cache/archives/dat_date volumes: - name: cache host: path: /run/cache --- kind: pipeline name: notifications platform: os: linux arch: amd64 clone: disable: true trigger: branch: - master - dev event: - push - tag status: - success - failure depends_on: - test-set-desktop - test-set-mobile - archive - upload steps: - name: discord pull: always image: appleboy/drone-discord:1.2.4 settings: message: > {{#success build.status}} ✅ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` succeeded. event: **`{{build.event}}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` ```{{commit.message}}``` {{else}} ❌ [Build #{{build.number}}]({{build.link}}) of `{{repo.name}}` failed. event: **`${DRONE_BUILD_EVENT}`** commit [`${DRONE_COMMIT_SHA:0:7}`](https://git.dotya.ml/${DRONE_REPO}/commit/${DRONE_COMMIT_SHA}) by {{commit.author}} on `{{commit.branch}}` ```{{commit.message}}``` {{/success}} webhook_id: from_secret: discord_webhook_id webhook_token: from_secret: discord_webhook_token