summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-08-15 18:48:17 +0200
committerLibravatar GitHub <noreply@github.com>2023-08-15 18:48:17 +0200
commit42bb352d5398ca681543362ee9bc0a69a9ba04fe (patch)
treeb16736e2315609c35004fc64f3b72e182fd5f6a9
parent[chore] ensure worker contexts have request ID (#2120) (diff)
downloadgotosocial-42bb352d5398ca681543362ee9bc0a69a9ba04fe.tar.xz
[feature] Add snapshot binary builds + uploads (#2119)
* [feature] Add snapshot binary builds + uploads * Update docs to include info on snapshot builds * review comments * little tweaks
-rw-r--r--.drone.yml24
-rw-r--r--README.md31
-rw-r--r--docs/getting_started/installation/metal.md3
-rw-r--r--docs/getting_started/releases.md7
4 files changed, 59 insertions, 6 deletions
diff --git a/.drone.yml b/.drone.yml
index e605902cb..c775679f3 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -81,7 +81,7 @@ steps:
- yarn run build
- name: snapshot
- image: superseriousbusiness/gotosocial-drone-build:0.2.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
+ image: superseriousbusiness/gotosocial-drone-build:0.3.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
volumes:
- name: go-build-cache
path: /root/.cache/go-build
@@ -91,16 +91,28 @@ steps:
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
- - /go/dockerlogin.sh
- goreleaser release --rm-dist --snapshot
- - docker push superseriousbusiness/gotosocial:snapshot-armv6 &&
+
+ # 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
+
+ # Publish binary .tar.gz snapshots to S3.
+ - /go/snapshot_publish.sh
when:
event:
include:
@@ -110,7 +122,7 @@ steps:
- main
- name: release
- image: superseriousbusiness/gotosocial-drone-build:0.2.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
+ image: superseriousbusiness/gotosocial-drone-build:0.3.0 # https://github.com/superseriousbusiness/gotosocial-drone-build
volumes:
- name: go-build-cache
path: /root/.cache/go-build
@@ -169,7 +181,7 @@ clone:
steps:
- name: mirror
- image: superseriousbusiness/gotosocial-drone-build:0.2.0
+ image: superseriousbusiness/gotosocial-drone-build:0.3.0
environment:
ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial
TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial
@@ -182,6 +194,6 @@ steps:
---
kind: signature
-hmac: 946c2ffd4e79de07a767ec06ebac0a8ca70a03ce5666aae093c9b0af455041d1
+hmac: 74653d67ed44ceefb7e19d6125d4a457e6308b5ef627df6325d72a0cc7d7cc0a
...
diff --git a/README.md b/README.md
index 49ac4278c..fcfad7869 100644
--- a/README.md
+++ b/README.md
@@ -40,6 +40,11 @@ Here's a screenshot of the instance landing page!
- [Federation Issues](#federation-issues)
- [Contributing](#contributing)
- [Building](#building)
+- [Releases](#releases)
+ - [Stable](#stable)
+ - [Snapshots](#snapshots)
+ - [Docker](#docker)
+ - [Binary release .tar.gz](#binary-release-targz)
- [Contact](#contact)
- [Credits](#credits)
- [Libraries](#libraries)
@@ -208,6 +213,32 @@ You would like to contribute to GtS? Great! ❤️❤️❤️ Check out the iss
Instructions for building GoToSocial from source are in the [CONTRIBUTING.md](./CONTRIBUTING.md) file.
+## Releases
+
+### Stable
+
+We package our stable releases for both binary builds and Docker containers, so that you don't have to build from source yourself.
+
+Check our [releases page](https://github.com/superseriousbusiness/gotosocial/releases) and our [getting started](https://docs.gotosocial.org/en/latest/getting_started/) documentation.
+
+The Docker image `superseriousbusiness/gotosocial:latest` will always correspond to the latest stable release. Since this tag is overwritten frequently, you may want to use Docker CLI flag `--pull always` to ensure that you always have the most up-to-date image every time you run using this tag. Alternatively, run `docker pull superseriousbusiness/gotosocial:latest` manually just before use.
+
+### Snapshots
+
+We also make snapshot builds every time something is merged into the main branch, so you can run from whatever code is on main if you wish.
+
+Please be warned that you do so at your own risk! We try to keep main working properly, but we make absolutely no guarantees. Take a stable release instead if you're unsure.
+
+#### Docker
+
+To run from main using Docker, use the `snapshot` Docker tag. The Docker image `superseriousbusiness/gotosocial:snapshot` will always correspond to the latest commit on main. Since this tag is overwritten frequently, you may want to use Docker CLI flag `--pull always` to ensure that you always have the most up-to-date image every time you run using this tag. Alternatively, run `docker pull superseriousbusiness/gotosocial:snapshot` manually just before use.
+
+#### Binary release .tar.gz
+
+To run from main using a binary release, download the appropriate .tar.gz file for your architecture from our [self-hosted Minio S3 repository](https://minio.s3.superseriousbusiness.org/browser/gotosocial-snapshots).
+
+Snapshot binary releases in the S3 bucket are keyed by Github commit hash. To get the latest one, sort by Last Modified, or check out the list of commits [here](https://github.com/superseriousbusiness/gotosocial/commits/main), copy the SHA of the latest one, and paste it in the Minio console filter. Snapshot binary releases are expired after 28 days, to keep our hosting costs down.
+
## Contact
For questions and comments, you can [join our Matrix space](https://matrix.to/#/#gotosocial-space:superseriousbusiness.org) at `#gotosocial-space:superseriousbusiness.org`. This is the quickest way to reach the devs. You can also mail [admin@gotosocial.org](mailto:admin@gotosocial.org).
diff --git a/docs/getting_started/installation/metal.md b/docs/getting_started/installation/metal.md
index b7afa309c..bac4c2f26 100644
--- a/docs/getting_started/installation/metal.md
+++ b/docs/getting_started/installation/metal.md
@@ -38,6 +38,9 @@ tar -xzf gotosocial_0.5.2_linux_amd64.tar.gz
This will put the `gotosocial` binary in your current directory, in addition to the `web` folder, which contains assets for the web frontend, and an `example` folder, which contains a sample configuration file.
+!!! danger
+ If you prefer to use a snapshot build of GoToSocial based on whatever code is currently on main, you can download recent binary .tar.gz files from https://minio.s3.superseriousbusiness.org/browser/gotosocial-snapshots (keyed by commit hash). Only do this if you know what you're doing, otherwise just take a stable release.
+
## Edit Configuration File
Copy the configuration file from the example folder into your current directory:
diff --git a/docs/getting_started/releases.md b/docs/getting_started/releases.md
index 14b6e4a58..5f566acf0 100644
--- a/docs/getting_started/releases.md
+++ b/docs/getting_started/releases.md
@@ -3,6 +3,7 @@
GoToSocial can be installed in a number of different ways. We publish official binary releases as well as container images. A number of third-party packages are maintained by different distributions and some people have created additional deployment tooling to make it easy to deploy GoToSocial yourself.
## Binary releases
+
We publish binary builds for Linux to [our GitHub project](https://github.com/superseriousbusiness/gotosocial/releases):
* 32-bit Intel/AMD (i386/x86)
@@ -20,6 +21,12 @@ We also publish container images [on the Docker Hub](https://hub.docker.com/r/su
Containers are released for the same Linux platforms as our binary releases, with the exception of 32-bit Intel/AMD.
+## Snapshots
+
+We publish snapshot binary builds and Docker images of whatever is currently on main.
+
+We always recommend using a stable release instead, but if you want to live on the edge (at your own risk!) then see the [snapshots](https://github.com/superseriousbusiness/gotosocial#snapshots) section on our GitHub repo for more information.
+
## Third-party
Some folks have created distribution packages for GoToSocial or additional tooling to aid in installing GoToSocial.