--- ### Drone configuration file for GoToSocial. ### Connects to https://drone.superseriousbusiness.org to perform testing, linting, and automatic builds/pushes to docker. ### ### For documentation on drone, see: https://docs.drone.io/ ### For documentation on drone docker pipelines in particular: https://docs.drone.io/pipeline/docker/overview/ kind: pipeline type: docker name: default steps: # We use golangci-lint for linting. # See: https://golangci-lint.run/ - name: lint image: golangci/golangci-lint:v1.60.3 volumes: - name: go-build-cache path: /root/.cache/go-build - name: golangci-lint-cache path: /root/.cache/golangci-lint - name: go-src path: /go commands: - golangci-lint run when: event: include: - pull_request - name: test image: golang:1.23.0-alpine volumes: - name: go-build-cache path: /root/.cache/go-build - name: go-src path: /go - name: wazero-compilation-cache path: /root/.cache/wazero environment: CGO_ENABLED: "0" GTS_WAZERO_COMPILATION_CACHE: "~/.cache/wazero" commands: - apk update --no-cache && apk add git - >- go test -failfast -timeout=20m -tags "netgo osusergo static_build kvformat timetzdata" ./... - ./test/envparsing.sh - ./test/swagger.sh depends_on: - lint when: event: include: - pull_request - name: web-setup image: node:18-alpine volumes: - name: yarn_cache path: /tmp/cache commands: - yarn --cwd ./web/source install --frozen-lockfile --cache-folder /tmp/cache - yarn --cwd ./web/source ts-patch install # https://typia.io/docs/setup/#manual-setup depends_on: - test when: event: include: - pull_request - name: web-lint image: node:18-alpine commands: - yarn --cwd ./web/source lint depends_on: - web-setup when: event: include: - pull_request - name: web-build image: node:18-alpine commands: - yarn --cwd ./web/source build depends_on: - web-setup when: event: include: - pull_request - name: snapshot <<<<<<< HEAD image: superseriousbusiness/gotosocial-drone-build:0.6.2 # https://github.com/superseriousbusiness/gotosocial-drone-build ======= image: superseriousbusiness/gotosocial-drone-build:0.7.0 # https://github.com/superseriousbusiness/gotosocial-drone-build >>>>>>> c1543c029 ([chore] Bump tooling versions, bump go -> v1.23.0) volumes: - name: go-build-cache path: /root/.cache/go-build - name: docker path: /var/run/docker.sock environment: DOCKER_USERNAME: gotosocial DOCKER_PASSWORD: from_secret: gts_docker_password S3_ACCESS_KEY_ID: from_secret: gts_s3_access_key_id S3_SECRET_ACCESS_KEY: from_secret: gts_s3_secret_access_key S3_HOSTNAME: "https://s3.superseriousbusiness.org" S3_BUCKET_NAME: "gotosocial-snapshots" commands: # Create a snapshot build with GoReleaser. - git fetch --tags - goreleaser release --clean --snapshot # Login to Docker, push Docker image snapshots + manifests. - /go/dockerlogin.sh - docker push superseriousbusiness/gotosocial:snapshot-armv6 - docker push superseriousbusiness/gotosocial:snapshot-armv7 - docker push superseriousbusiness/gotosocial:snapshot-arm64v8 - docker push superseriousbusiness/gotosocial:snapshot-amd64 - docker manifest create superseriousbusiness/gotosocial:snapshot superseriousbusiness/gotosocial:snapshot-armv6 superseriousbusiness/gotosocial:snapshot-armv7 superseriousbusiness/gotosocial:snapshot-amd64 superseriousbusiness/gotosocial:snapshot-arm64v8 - docker manifest push superseriousbusiness/gotosocial:snapshot - docker push superseriousbusiness/gotosocial:snapshot-armv6-moderncsqlite - docker push superseriousbusiness/gotosocial:snapshot-armv7-moderncsqlite - docker push superseriousbusiness/gotosocial:snapshot-arm64v8-moderncsqlite - docker push superseriousbusiness/gotosocial:snapshot-amd64-moderncsqlite - docker manifest create superseriousbusiness/gotosocial:snapshot-moderncsqlite superseriousbusiness/gotosocial:snapshot-armv6-moderncsqlite superseriousbusiness/gotosocial:snapshot-armv7-moderncsqlite superseriousbusiness/gotosocial:snapshot-amd64-moderncsqlite superseriousbusiness/gotosocial:snapshot-arm64v8-moderncsqlite - docker manifest push superseriousbusiness/gotosocial:snapshot-moderncsqlite # Publish binary .tar.gz snapshots to S3. - /go/snapshot_publish.sh when: event: include: - push branch: include: - main - name: release <<<<<<< HEAD image: superseriousbusiness/gotosocial-drone-build:0.6.2 # https://github.com/superseriousbusiness/gotosocial-drone-build ======= image: superseriousbusiness/gotosocial-drone-build:0.7.0 # https://github.com/superseriousbusiness/gotosocial-drone-build >>>>>>> c1543c029 ([chore] Bump tooling versions, bump go -> v1.23.0) volumes: - name: go-build-cache path: /root/.cache/go-build - name: docker path: /var/run/docker.sock environment: DOCKER_USERNAME: gotosocial DOCKER_PASSWORD: from_secret: gts_docker_password GITHUB_TOKEN: from_secret: github_token commands: - git fetch --tags - /go/dockerlogin.sh # When releasing, compare commits to the most recent tag that is not the # current one AND is not a release candidate tag (ie., no "rc" in the name). # # The DRONE_TAG env var should point to the tag that triggered this build. # See: https://docs.drone.io/pipeline/environment/reference/drone-tag/ # # Note, this may cause annoyances when doing backport releases, for example, # releasing v0.10.1 when we've already released v0.15.0 or whatever, but # they should only be superficial annoyances related to the release notes. - GORELEASER_PREVIOUS_TAG=$(git tag -l | grep -v "rc\|${DRONE_TAG}" | sort -V -r | head -n 1) goreleaser release --clean when: event: include: - tag # We can speed up builds significantly by caching build artifacts between runs. # See: https://docs.drone.io/pipeline/docker/syntax/volumes/host/ volumes: - name: go-build-cache host: path: /drone/gotosocial/go-build - name: golangci-lint-cache host: path: /drone/gotosocial/golangci-lint - name: go-src host: path: /drone/gotosocial/go - name: docker host: path: /var/run/docker.sock trigger: repo: - superseriousbusiness/gotosocial - NyaaaWhatsUpDoc/gotosocial - f0x52/gotosocial --- kind: pipeline type: docker name: cron trigger: event: - cron cron: - nightly clone: disable: true steps: - name: mirror <<<<<<< HEAD image: superseriousbusiness/gotosocial-drone-build:0.6.2 ======= image: superseriousbusiness/gotosocial-drone-build:0.7.0 >>>>>>> c1543c029 ([chore] Bump tooling versions, bump go -> v1.23.0) environment: ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial CODEBERG_USER: gotosocialbot CODEBERG_EMAIL: admin@gotosocial.org CODEBERG_TOKEN: from_secret: gts_codeberg_token commands: - /go/codeberg_clone.sh --- kind: signature <<<<<<< HEAD hmac: 1b89e3a538fbca72eb9a0b398cd82f09a774ba3649013e19d36012eda327e83f ======= hmac: 90df190a8e49e082ec2a95738bdf44fb049a7ab64b71f522e1f1add1bb061a81 >>>>>>> c1543c029 ([chore] Bump tooling versions, bump go -> v1.23.0) ...