[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
This commit is contained in:
parent
e9c3663cce
commit
42bb352d53
24
.drone.yml
24
.drone.yml
|
@ -81,7 +81,7 @@ steps:
|
||||||
- yarn run build
|
- yarn run build
|
||||||
|
|
||||||
- name: snapshot
|
- 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:
|
volumes:
|
||||||
- name: go-build-cache
|
- name: go-build-cache
|
||||||
path: /root/.cache/go-build
|
path: /root/.cache/go-build
|
||||||
|
@ -91,16 +91,28 @@ steps:
|
||||||
DOCKER_USERNAME: gotosocial
|
DOCKER_USERNAME: gotosocial
|
||||||
DOCKER_PASSWORD:
|
DOCKER_PASSWORD:
|
||||||
from_secret: gts_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:
|
commands:
|
||||||
|
# Create a snapshot build with GoReleaser.
|
||||||
- git fetch --tags
|
- git fetch --tags
|
||||||
- /go/dockerlogin.sh
|
|
||||||
- goreleaser release --rm-dist --snapshot
|
- 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-armv7
|
||||||
- docker push superseriousbusiness/gotosocial:snapshot-arm64v8
|
- docker push superseriousbusiness/gotosocial:snapshot-arm64v8
|
||||||
- docker push superseriousbusiness/gotosocial:snapshot-amd64
|
- 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 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 manifest push superseriousbusiness/gotosocial:snapshot
|
||||||
|
|
||||||
|
# Publish binary .tar.gz snapshots to S3.
|
||||||
|
- /go/snapshot_publish.sh
|
||||||
when:
|
when:
|
||||||
event:
|
event:
|
||||||
include:
|
include:
|
||||||
|
@ -110,7 +122,7 @@ steps:
|
||||||
- main
|
- main
|
||||||
|
|
||||||
- name: release
|
- 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:
|
volumes:
|
||||||
- name: go-build-cache
|
- name: go-build-cache
|
||||||
path: /root/.cache/go-build
|
path: /root/.cache/go-build
|
||||||
|
@ -169,7 +181,7 @@ clone:
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: mirror
|
- name: mirror
|
||||||
image: superseriousbusiness/gotosocial-drone-build:0.2.0
|
image: superseriousbusiness/gotosocial-drone-build:0.3.0
|
||||||
environment:
|
environment:
|
||||||
ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial
|
ORIGIN_REPO: https://github.com/superseriousbusiness/gotosocial
|
||||||
TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial
|
TARGET_REPO: https://codeberg.org/superseriousbusiness/gotosocial
|
||||||
|
@ -182,6 +194,6 @@ steps:
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: 946c2ffd4e79de07a767ec06ebac0a8ca70a03ce5666aae093c9b0af455041d1
|
hmac: 74653d67ed44ceefb7e19d6125d4a457e6308b5ef627df6325d72a0cc7d7cc0a
|
||||||
|
|
||||||
...
|
...
|
||||||
|
|
31
README.md
31
README.md
|
@ -40,6 +40,11 @@ Here's a screenshot of the instance landing page!
|
||||||
- [Federation Issues](#federation-issues)
|
- [Federation Issues](#federation-issues)
|
||||||
- [Contributing](#contributing)
|
- [Contributing](#contributing)
|
||||||
- [Building](#building)
|
- [Building](#building)
|
||||||
|
- [Releases](#releases)
|
||||||
|
- [Stable](#stable)
|
||||||
|
- [Snapshots](#snapshots)
|
||||||
|
- [Docker](#docker)
|
||||||
|
- [Binary release .tar.gz](#binary-release-targz)
|
||||||
- [Contact](#contact)
|
- [Contact](#contact)
|
||||||
- [Credits](#credits)
|
- [Credits](#credits)
|
||||||
- [Libraries](#libraries)
|
- [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.
|
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
|
## 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).
|
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).
|
||||||
|
|
|
@ -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.
|
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
|
## Edit Configuration File
|
||||||
|
|
||||||
Copy the configuration file from the example folder into your current directory:
|
Copy the configuration file from the example folder into your current directory:
|
||||||
|
|
|
@ -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.
|
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
|
## Binary releases
|
||||||
|
|
||||||
We publish binary builds for Linux to [our GitHub project](https://github.com/superseriousbusiness/gotosocial/releases):
|
We publish binary builds for Linux to [our GitHub project](https://github.com/superseriousbusiness/gotosocial/releases):
|
||||||
|
|
||||||
* 32-bit Intel/AMD (i386/x86)
|
* 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.
|
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
|
## Third-party
|
||||||
|
|
||||||
Some folks have created distribution packages for GoToSocial or additional tooling to aid in installing GoToSocial.
|
Some folks have created distribution packages for GoToSocial or additional tooling to aid in installing GoToSocial.
|
||||||
|
|
Loading…
Reference in New Issue