mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 12:22:24 -05:00 
			
		
		
		
	[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
					
				
			
		
					 4 changed files with 59 additions and 6 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		Add a link
		
	
		Reference in a new issue