Skip to content

A Simple package to automate the process of upgrading Golang version in your projects

License

Notifications You must be signed in to change notification settings

Nicconike/goautomate

Repository files navigation

GoAutomate🐿️

Release Code Coverage Go Report Card GitHub go.mod Go version GitHub Release codecov Go Reference GitHub License Visitor Badge

goautomate is a Go tool that automates the process of checking and updating Go versions in your projects. It can detect the current Go version from various file types, compare it with the latest available version, and download the newest version if an update is available.

Features

  • Detect current Go version from various file types (Dockerfile, go.mod, JSON configs, etc.)
  • Check for the latest available Go version
  • Download the latest Go version if an update is available
  • Checksum validation for downloaded Go versions to ensure integrity
  • Support for different operating systems and architectures

Installation

To install goautomate, use the following command:

go get -u github.com/Nicconike/goautomate

Usage

Basic Usage

goautomate -file <path-to-file> -os <target-os> -arch <target-arch>

This will check the specified file for the current Go version, compare it with the latest available version, and download the new version if an update is available.

Note

If you don't specify the os and arch type, the tool will download the latest version for your current operating system and architecture.

Minimum required Go version: 1.15

Command-line Options

  • -file or -f: Path to the file containing the current Go version
  • -version or -v: Directly specify the current Go version
  • -os: Target operating system (windows, linux, macOS[darwin])
  • -arch: Target architecture (386[x86], amd64[x86-64], arm64, armv6l[armv6])

Examples

  1. Get version from a Dockerfile:

    goautomate -f Dockerfile

    Dockerfile Example

  2. Get version from go.mod:

    goautomate -f go.mod

    Go Mod Example

  3. Specify version directly:

    goautomate -v 1.17

    Direct Example

  4. Download for a specific OS and architecture:

    goautomate -f version.json -os linux -arch arm64

    JSON Example with OS

Also, checkout a real example in the test-goautomate repository where this tool is used to check and update the Go version. And then upload the downloaded Go version to Github using Git LFS.

Supported File Types

goautomate can extract Go versions from various file types, including:

  • Dockerfile
  • go.mod
  • JSON configuration files
  • Plain text files with version information

The tool uses various regex patterns to detect Go versions, making it flexible for different project setups.

Missing any file types you expected to see? Let me know via discussions or discord server.

Contributing

Star⭐ and Fork🍴 the Repo to start with your feature request(or bug) and experiment with the project to implement whatever Idea you might have and sent the Pull Request through 🤙

Please refer Contributing.md to get to know how to contribute to this project. And thank you for considering to contribute.

License

GPLv3 License