--- kind: pipeline type: docker name: linux-android-windows-test steps: - name: fetch image: golang:1.17.5 volumes: - name: deps path: /go commands: - wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/master/tor/tor - wget https://git.openprivacy.ca/openprivacy/buildfiles/raw/master/tor/torrc - chmod a+x tor - go get -u golang.org/x/lint/golint - git fetch --tags #- export GO111MODULE=on #- go mod vendor - go get # TODO: upgrade to go1.16, remove mod/vendor, add go install for 1.16 - echo `git describe --tags` > VERSION - echo `date +%G-%m-%d-%H-%M` > BUILDDATE - name: quality image: golang:1.17.5 volumes: - name: deps path: /go commands: - go list ./... | xargs go vet - go list ./... | xargs golint #Todo: fix all the lint errors and add `-set_exit_status` above to enforce linting - name: build-linux image: golang:1.17.5 volumes: - name: deps path: /go commands: - make linux - name: build-android image: openpriv/android-go-mobile:2021.03 volumes: - name: deps path: /go commands: - go mod download - gomobile init - make android - name: build-windows image: openpriv/mingw-go:2021.03 environment: GOPATH: /go volumes: - name: deps path: /go commands: - make windows - name: deploy-buildfiles image: kroniak/ssh-client pull: if-not-exists environment: BUILDFILES_KEY: from_secret: buildfiles_key secrets: [gogs_account_token] when: event: - push - tag status: [ success ] commands: - echo $BUILDFILES_KEY > ~/id_rsab64 - base64 -d ~/id_rsab64 > ~/id_rsa - chmod 400 ~/id_rsa - export DIR=libCwtch-go-`cat BUILDDATE`-`cat VERSION` - mkdir $DIR - mv libCwtch.so libCwtch.dll cwtch.aar cwtch-sources.jar libCwtch.h $DIR/ - cd $DIR - find . -type f -exec sha256sum {} \; > ./../sha256s.txt - mv ./../sha256s.txt . - cd .. - scp -r -o StrictHostKeyChecking=no -i ~/id_rsa $DIR buildfiles@build.openprivacy.ca:/home/buildfiles/buildfiles/ - name: gitea-release image: plugins/gitea-release pull: if-not-exists when: event: tag settings: api_key: from_secret: gogs_account_token base_url: https://git.openprivacy.ca files: - libCwtch.so - libCwtch.dll - cwtch.aar - cwtch-sources.jar - libCwtch.h checksum: - sha256 - sha512 - name: notify-email image: drillster/drone-email pull: if-not-exists settings: host: build.openprivacy.ca port: 25 skip_verify: true from: drone@openprivacy.ca when: status: [ failure ] - name: notify-gogs image: openpriv/drone-gogs pull: if-not-exists when: event: pull_request status: [ success, changed, failure ] environment: GOGS_ACCOUNT_TOKEN: from_secret: gogs_account_token settings: gogs_url: https://git.openprivacy.ca volumes: # gopath where bin and pkg lives to persist across steps - name: deps temp: {} trigger: repo: cwtch.im/libcwtch-go branch: trunk event: - push - pull_request - tag --- kind: pipeline type: exec name: macos platform: os: darwin arch: amd64 steps: - name: fetch commands: - export PATH=$PATH:/usr/local/go/bin/ - git fetch --tags - go get # TODO: upgrade to go1.16, remove mod/vendor, add go install for 1.16 - echo `git describe --tags` > VERSION - echo `date +%G-%m-%d-%H-%M` > BUILDDATE - name: build-macos-x64 commands: - export PATH=$PATH:/usr/local/go/bin/ - make libCwtch.x64.dylib - name: build-macos-arm64 when: event: - push status: [ success ] commands: - export PATH=$PATH:/usr/local/go/bin/ - make libCwtch.arm.dylib - name: deploy-buildfiles environment: BUILDFILES_KEY: from_secret: buildfiles_key when: event: - push status: [ success ] commands: - echo $BUILDFILES_KEY > ~/id_rsab64 - base64 -d ~/id_rsab64 > ~/id_rsa - chmod 400 ~/id_rsa - export DIR=libCwtch-go-macos-`cat BUILDDATE`-`cat VERSION` - mkdir $DIR - mv libCwtch.x64.dylib $DIR/ - mv libCwtch.arm.dylib $DIR/ - cd $DIR - find . -type f -exec shasum -a 512 {} \; > ./../sha512s.txt - mv ./../sha512s.txt . - cd .. - scp -r -o StrictHostKeyChecking=no -i ~/id_rsa $DIR buildfiles@build.openprivacy.ca:/home/buildfiles/buildfiles/ trigger: repo: cwtch.im/libcwtch-go branch: trunk event: - push - pull_request