Git Product home page Git Product logo

letitgo's Introduction

LetItGo

Build status Release Report Maintained Docker Cloud Build Status Website License Coffee

LetItGo simplifies automated releases. A simple definition in .release.yml in the root of your project is all you need.

Check out the docs for full documentation.

Install

Homebrew

brew install NoUseFreak/brew/letitgo
letitgo --version

Gofish

gofish install letitgo
letitgo --version

CLI

curl -sL http://bit.ly/gh-get | PROJECT=NoUseFreak/letitgo bash
letitgo --version

Docker

docker run -v $(pwd):/app nousefreak/letitgo --version

Whalebrew

whalebrew install nousefreak/letitgo

Anywhere

curl -sL http://bit.ly/gh-get | BIN_DIR=/tmp/bin PROJECT=NoUseFreak/letitgo bash
/tmp/bin/letitgo --version

Usage

The most common use case would be to provide a .release.yml file in the root of your project, and let letitgo do it's thing.

$ letitgo

Init

You can use letitgo init to help you generate your .release.yml file.

It will go through all available actions and provide you with an example for each of the actions.

Actions

Actions as as the name explains, actions that letitgo need to execute when the release process is triggered.

Action Description
archive Create archives of files.
changelog Generate a changelog and commit it to your project.
docker Builds, tags and pushes docker images.
githubrelease Publish generated artifacts and attach them to a github release.
gofish Creates a PR to update the gofish fish-food.
helm Package and/or publish helm charts to a registry like chartmuseum.
homebrew Update your personal homebrew tap with your latest config.
slack Send message to slack to mark a complete release.
snapcraft Package and upload your snap to snapcraft.

All actions and example configuration can be found in the docs directory.

Example

The following is an example config used to release this project.

letitgo:
  name: letitgo
  description: LetItGo automates releases.
  actions:
    - type: changelog

    - type: githubrelease
      assets:
      - ./build/pkg/*

    - type: homebrew
      homepage: https://github.com/NoUseFreak/letitgo
      url: https://github.com/NoUseFreak/letitgo/releases/download/{{ .Version }}/darwin_amd64.zip
      tap:
        url: [email protected]:NoUseFreak/homebrew-brew.git
      test: system "#{bin}/{{ .Name }} -h"

letitgo's People

Contributors

dependabot-preview[bot] avatar nousefreak avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

u240

letitgo's Issues

Make output pretty

Is your feature request related to a problem? Please describe.
Make the output more readable

Describe the solution you'd like
When running without a log level, output should be pretty.
by implementing a logrus formatter.

Implement changelog updates

Is your feature request related to a problem? Please describe.
Add the option to generate and update changelogs

Describe the solution you'd like
Compare the commits between the current release and the previous (tag based) and update CHANGELOG.md

Additional context
This generated changelog can also be used as githubrelease description.

Support archiving

Is your feature request related to a problem? Please describe.
Allow users to let letigto archive the artifacts

archive:
  - files:
      - build/*/letitgo
    target: build/pkg/
    extra_files:
      - LICENSE
      - CHANGELOG.md
    mode: zip

Create init command

Is your feature request related to a problem? Please describe.
It's complex to get started, an init script asking some basic questions would help getting started.

Describe the solution you'd like
Ask for basic project options and ask to enable other actions.

Windows build is broken

Describe the bug
Currently windows binaries are not build

Config
Current project config

Expected behavior
Build should have created a windows binary.
Build should have failed if a single binary is not created.

Debug logs

2 errors occurred:
--> windows/amd64 error: exit status 2
Stderr: # github.com/docker/docker/pkg/system
../../../../pkg/mod/github.com/docker/[email protected]/pkg/system/filesys_windows.go:112:24: cannot use uintptr(unsafe.Pointer(&sd[0])) (type uintptr) as type *"golang.org/x/sys/windows".SECURITY_DESCRIPTOR in assignment
--> windows/386 error: exit status 2
Stderr: # github.com/docker/docker/pkg/system
../../../../pkg/mod/github.com/docker/[email protected]/pkg/system/filesys_windows.go:112:24: cannot use uintptr(unsafe.Pointer(&sd[0])) (type uintptr) as type *"golang.org/x/sys/windows".SECURITY_DESCRIPTOR in assignment

Platform (please complete the following information):
travisci

Additional context
https://travis-ci.org/NoUseFreak/letitgo/builds/603162352

Change configuration format

Is your feature request related to a problem? Please describe.
To make internal processes easier and make it more extendable configuration needs to change.

Describe the solution you'd like

letitgo:
  name: letitgo
  description: LetItGo automates releases.
  actions:
  - type: changelog
  - type: githubrelease
     assets:
     - ./build/pkg/*
  - type: homebrew
    homepage: https://github.com/NoUseFreak/letitgo
    url: https://github.com/NoUseFreak/letitgo/releases/download/{{ .Version }}/darwin_amd64.zip
    tap:
      url: [email protected]:NoUseFreak/homebrew-brew.git
    test: system "#{bin}/{{ .Name }} -h"

Describe alternatives you've considered
This allows for much easier processing and looping.

Dependabot can't resolve your Go dependency files

Dependabot can't resolve your Go dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

github.com/NoUseFreak/letitgo/internal/app/letitgo: cannot find module providing package github.com/NoUseFreak/letitgo/internal/app/letitgo

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.