kind: pipeline
type: exec
name: Continuous Integration

steps:
  - name: Prepare
    commands:
      - ln -s /var/lib/drone-runner-exec/.local $HOME/.local

  - name: Run Tests
    commands:
      - ./ci.py --ci-run-tests

  - name: Build Linux Target
    commands:
      - ./ci.py --ci-build-linux

  - name: Build APK Target
    commands:
      - ./ci.py --ci-build-apk

trigger:
  event:
    - push
    - pull_request

node:
  server: builder

---

kind: pipeline
type: exec
name: Release

steps:
  - name: Prepare
    commands:
      - ln -s /var/lib/drone-runner-exec/.local $HOME/.local
      - if podman volume exists release; then podman volume rm -f release; podman volume create release; else podman volume create release; fi
      - git config user.email "builder@selfprivacy.org"
      - git config user.name "Builder"

  - name: Build Intermediate Linux Release Artifact (Binary)
    commands:
      - ./ci.py --build-linux
    environment:
      STANDALONE_KEYSTORE_PASS:
        from_secret: STANDALONE_KEYSTORE_PASS
      FDROID_KEYSTORE_PASS:
        from_secret: FDROID_KEYSTORE_PASS

  - name: Build Intermediate Android Release Artifact (.APK)
    commands:
      - ./ci.py --build-apk
    environment:
      STANDALONE_KEYSTORE_PASS:
        from_secret: STANDALONE_KEYSTORE_PASS
      FDROID_KEYSTORE_PASS:
        from_secret: FDROID_KEYSTORE_PASS

  - name: Sign Android Release Artifact (.APK) for Standalone Use
    commands:
      - ./ci.py --sign-apk-standalone
    environment:
      STANDALONE_KEYSTORE_PASS:
        from_secret: STANDALONE_KEYSTORE_PASS
      FDROID_KEYSTORE_PASS:
        from_secret: FDROID_KEYSTORE_PASS

  - name: Sign Android Release Artifact (.APK) for F-Droid Repository
    commands:
      - ./ci.py --sign-apk-fdroid
    environment:
      STANDALONE_KEYSTORE_PASS:
        from_secret: STANDALONE_KEYSTORE_PASS
      FDROID_KEYSTORE_PASS:
        from_secret: FDROID_KEYSTORE_PASS

  - name: Package Linux AppImage Artifact
    commands:
      - ./ci.py --package-linux-appimage

  - name: Package Linux Flatpak Artifact
    commands:
      - ./ci.py --package-linux-flatpak

  - name: Package Linux Archive Artifact
    commands:
      - ./ci.py --package-linux-archive

  - name: Push Artifacts to the Release Volume
    commands:
      - git add -v *.AppImage *.flatpak *.apk *.apk.idsig *.tar.zstd
      - git commit -m Release
      - git archive --format=tar HEAD | podman volume import release -

trigger:
  event:
    - tag

node:
  server: builder

---

kind: pipeline
type: exec
name: Deploy

steps:
  - name: Prepare
    commands:
      - ln -s /var/lib/drone-runner-exec/.local $HOME/.local
      - podman unshare podman volume mount release

  - name: Create Release and Deploy Artifacts
    commands:
      - ./ci.py --deploy-gitea-release
    environment:
      GITEA_RELEASE_TOKEN:
        from_secret: GITEA_RELEASE_TOKEN

  - name: Deploy F-Droid Repo
    commands:
      - ./ci.py --deploy-fdroid-repo
    environment:
      SSH_PRIVATE_KEY:
        from_secret: SSH_PRIVATE_KEY

trigger:
  event:
    - tag

node:
  server: builder

depends_on:
  - Release
