From 6f346ad88cdda8bd57ca51de454881884c3c2797 Mon Sep 17 00:00:00 2001 From: Leo Arias Date: Sat, 5 Aug 2017 00:36:13 +0000 Subject: [PATCH] Add the documentation about the snapcraft pipeline closes #326 --- README.md | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cec86127..1f34860d9 100644 --- a/README.md +++ b/README.md @@ -382,7 +382,7 @@ brew: ... - # So you can brew test your formula. Default is empty. + # So you can brew test your formula. Default is empty. test: | system "#{bin}/program --version" ... @@ -460,6 +460,51 @@ fpm: Note that GoReleaser will not install `fpm` nor any of its dependencies for you. +### Snapcraft build customization + +GoReleaser can generate `snap` packages. [Snaps](http://snapcraft.io/) are a new packaging format that will let you publish your project directly to the Ubuntu store. From there it will be installable in all the [supported Linux distros](https://snapcraft.io/docs/core/install), with automatic and transactional updates. + +You can read more about it in the [snapcraft docs](https://snapcraft.io/docs/). + +```yml +# .goreleaser.yml +snapcraft: + # Single-line elevator pitch for your amazing snap. + # 79 char long at most. + summary: Software to create fast and easy drum rolls. + # This the description of your snap. You have a paragraph or two to tell the + # most important story about your snap. Keep it under 100 words though, + # we live in tweetspace and your description wants to look good in the snap + # store. + description: | + # A guardrail to prevent you from releasing a snap to all your users before + # it is ready. + # `devel` will let you release only to the `edge` and `beta` channels in the + # store. `stable` will let you release also to the `candidate` and `stable` + # channels. More [info about channels here](https://snapcraft.io/docs/reference/channels). + grade: stable + # Snaps can be setup to follow three different confinement policies: + # `strict`, `devmode` and `classic`. A strict confinement where the snap + # can only read and write in its own namespace is recommended. Extra + # permissions for strict snaps can be declared as `plugs` for the app, which + # are explained later. More [info about confinement here](https://snapcraft.io/docs/reference/confinement). + confinement: strict + # Each binary built by GoReleaser is an app inside the snap. In this section + # you can declare extra details for those binaries. It is optional. + apps: + # The name of the app must be the same name of the binary built. + drumroll: + # If your app requires extra permissions to work outside of its default + # confined space, delcare them here. + # You can read the [documentation about the available plugs and the things they allow](https://snapcraft.io/docs/reference/interfaces). + plugs: ["home", "network"] + # If you want your app to be autostarted and to always run in the + # background, you can make it a simple daemon. + daemon: simple +``` + +Note that GoReleaser will not install `snapcraft` nor any of its dependencies for you. + ### Custom release notes You can have a markdown file previously created with the release notes, and