diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 17d013c..80077c3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -21,4 +21,5 @@ jobs: with: args: release --release-notes=doc/whats_new.md env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + HOMEBREW: ${{ secrets.HOMEBREW }} \ No newline at end of file diff --git a/.goreleaser.yml b/.goreleaser.yml index 16f64fe..14a4ff0 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -1,5 +1,3 @@ -# This is an example goreleaser.yaml file with some sane defaults. -# Make sure to check the documentation at http://goreleaser.com builds: - binary: FLEcli @@ -17,7 +15,7 @@ builds: ignore: - goos: darwin - goarch: 386 + goarch: '386' - goos: windows goarch: amd64 @@ -83,3 +81,96 @@ changelog: exclude: - '^docs:' - '^test:' + +# .goreleaser.yml +brews: + - + # Name template of the recipe + # Default to project name + name: flecli + + # # IDs of the archives to use. + # # Defaults to all. + # ids: + # - foo + # - bar + + # GOARM to specify which 32-bit arm version to use if there are multiple versions + # from the build section. Brew formulas support atm only one 32-bit version. + # Default is 6 for all artifacts or each id if there a multiple versions. + goarm: '6' + + # NOTE: make sure the url_template, the token and given repo (github or gitlab) owner and name are from the + # same kind. We will probably unify this in the next major version like it is done with scoop. + + # GitHub/GitLab repository to push the formula to + tap: + owner: on4kjm + name: homebrew-tap + # Optionally a branch can be provided. If the branch does not exist, it + # will be created. If no branch is listed, the default branch will be used + branch: main + + # Optionally a token can be provided, if it differs from the token provided to GoReleaser + token: "{{ .Env.HOMEBREW }}" + + # Template for the url which is determined by the given Token (github or gitlab) + # Default for github is "https://github.com///releases/download/{{ .Tag }}/{{ .ArtifactName }}" + # Default for gitlab is "https://gitlab.com///-/releases/{{ .Tag }}/downloads/{{ .ArtifactName }}" + # Default for gitea is "https://gitea.com///releases/download/{{ .Tag }}/{{ .ArtifactName }}" + url_template: "https://github.com/on4kjm/FLEcli/releases/download/{{ .Tag }}/{{ .ArtifactName }}" + + # Allows you to set a custom download strategy. Note that you'll need + # to implement the strategy and add it to your tap repository. + # Example: https://docs.brew.sh/Formula-Cookbook#specifying-the-download-strategy-explicitly + # Default is empty. + download_strategy: CurlDownloadStrategy + + # # Allows you to add a custom require_relative at the top of the formula template + # # Default is empty + # custom_require: custom_download_strategy + + # Git author used to commit to the repository. + # Defaults are shown. + commit_author: + name: goreleaserbot + email: on4kjm@gmail.com + + # The project name and current git tag are used in the format string. + commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}" + + # Folder inside the repository to put the formula. + # Default is the root folder. + folder: Formula + + # # Caveats for the user of your binary. + # # Default is empty. + # caveats: "How to use this binary" + + # # Your app's homepage. + # # Default is empty. + homepage: "https://github.com/on4kjm/FLEcli" + + # Template of your app's description. + # Default is empty. + description: "Fast Log Entry (FLE) command line interface." + + # SPDX identifier of your app's license. + # Default is empty. + license: "MIT" + + # Setting this will prevent goreleaser to actually try to commit the updated + # formula - instead, the formula file will be stored on the dist folder only, + # leaving the responsibility of publishing it to the user. + # If set to auto, the release will not be uploaded to the homebrew tap + # in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1 + # Default is false. + # skip_upload: auto + + + # So you can `brew test` your formula. + # Default is empty. + test: | + system "#{bin}/FLEcli version" + + diff --git a/README.md b/README.md index 98f4c47..1a87088 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,13 @@ A docker version is also available. The releases can be downloaded from https://github.com/on4kjm/FLEcli/releases For MacOS users, `homebrew` is the easiest installation method. -//TODO: Explain in details of the installation + +* add the Homebrew tap with `brew tap on4kjm/tap`. +* install the application with `brew install flecli`. + Detailed installation instructions can be found [at this page](doc/install.md). -//TODO: repeat the instruction in the install documentation. + ## Usage diff --git a/doc/install_mac.md b/doc/install_mac.md index 894e1c3..6398864 100644 --- a/doc/install_mac.md +++ b/doc/install_mac.md @@ -1,5 +1,14 @@ # Installation on MacOS +## Via Homebrew + +This is the easiest method. + +* add the Homebrew tap with `brew tap on4kjm/tap`. +* install the application with `brew install flecli`. + +## Manual installation + At this stage, the MacOS FLEcli binary is not signed. It will fail to load on recent MacOS version. This procedure will guide you for adding FLEcli to the exception list.