go-cross-build/README.md

49 lines
1.8 KiB
Markdown
Raw Normal View History

2020-04-11 15:29:35 -04:00
# GitHub Action: go-build-action
This actions generates cross-platform executable files from a Go module.
![release](/assets/release.png)
# Workflow setup
```yaml
# workflow name
name: Generate release-artifacts
# on events
on:
release:
types:
- created
# workflow tasks
jobs:
generate:
name: Generate cross-platform builds
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2
- name: Generate build files
uses: thatisuday/go-cross-build@v1
with:
platforms: 'linux/amd64, darwin/amd64, windows/amd64'
package: 'demo'
name: 'program'
compress: 'true'
dest: 'dist'
```
### option: **platforms**
The `platforms` option specifies comma-separated platform names to create binary-executable files for. To see the list of supported platforms, use `go tool dist list` command.
### option: **package**
If the module (_repository_) itself is a Go package, then `package` option value should be an empty string (''). If the repository contains a package directory, then `package` value should be the directory name.
### option: **compress**
The `compress` option if set to `'true'` will generate **compressed-tar** archive files for the each platform-build file. The resulting archive file also contains `README.md` and `LICENSE` file if they exist inside the root of the repository. In this mode, the binary executable file name is taken from the `name` option value.
### option: **name**
The `name` option sets a prefix for the build filenames. In compression mode, this prefix is applied to archive files and binary executable filename is set to this value.
### option: **dest**
The `dest` option sets the output directory for the build files. This should be a relative directory without leading `./`.