49 lines
1.8 KiB
Markdown
49 lines
1.8 KiB
Markdown
# 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 `./`. |