Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
122 changes: 16 additions & 106 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,111 +27,21 @@ jobs:
- name: Run tests
run: go test -v -race ./...

- name: Build binaries
run: |
VERSION=${GITHUB_REF_NAME}
COMMIT=$(git rev-parse --short HEAD)
DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
LDFLAGS="-s -w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.date=${DATE}"

mkdir -p dist

# Build for each platform
platforms=(
"linux/amd64"
"linux/arm64"
"darwin/amd64"
"darwin/arm64"
"windows/amd64"
"windows/arm64"
)

for platform in "${platforms[@]}"; do
GOOS=${platform%/*}
GOARCH=${platform#*/}

output_name="atl-${GOOS}-${GOARCH}"
if [ "$GOOS" = "windows" ]; then
output_name+=".exe"
fi

echo "Building $output_name..."
GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "${LDFLAGS}" -o "dist/${output_name}" ./cmd/atl
done

# Create archives
cd dist
for file in atl-*; do
if [[ "$file" == *.exe ]]; then
zip "${file%.exe}.zip" "$file"
rm "$file"
else
tar czf "${file}.tar.gz" "$file"
rm "$file"
fi
done

# Generate checksums
sha256sum * > checksums.txt

- name: Generate changelog
id: changelog
run: |
# Get previous tag
PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")

if [ -n "$PREV_TAG" ]; then
echo "Generating changelog from $PREV_TAG to $GITHUB_REF_NAME"
CHANGELOG=$(git log --pretty=format:"- %s (%h)" "$PREV_TAG".."$GITHUB_REF_NAME" --no-merges)
else
echo "No previous tag found, including all commits"
CHANGELOG=$(git log --pretty=format:"- %s (%h)" --no-merges)
fi

# Escape for GitHub Actions
echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT

- name: Create Release
uses: softprops/action-gh-release@v2
- name: Generate GitHub App token for tap
id: app-token
uses: actions/create-github-app-token@v2
with:
name: ${{ github.ref_name }}
body: |
## What's Changed

${{ steps.changelog.outputs.changelog }}

## Installation

### macOS (Apple Silicon)
```bash
curl -L https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/atl-darwin-arm64.tar.gz | tar xz
chmod +x atl-darwin-arm64
sudo mv atl-darwin-arm64 /usr/local/bin/atl
```

### macOS (Intel)
```bash
curl -L https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/atl-darwin-amd64.tar.gz | tar xz
chmod +x atl-darwin-amd64
sudo mv atl-darwin-amd64 /usr/local/bin/atl
```
app-id: ${{ secrets.HOMEBREW_TAP_APP_ID }}
private-key: ${{ secrets.HOMEBREW_TAP_APP_PRIVATE_KEY }}
owner: enthus-appdev
repositories: homebrew-tap

### Linux (x64)
```bash
curl -L https://github.com/${{ github.repository }}/releases/download/${{ github.ref_name }}/atl-linux-amd64.tar.gz | tar xz
chmod +x atl-linux-amd64
sudo mv atl-linux-amd64 /usr/local/bin/atl
```

### Windows
Download `atl-windows-amd64.zip` (or `atl-windows-arm64.zip` for ARM) and add to your PATH.

## Checksums

See `checksums.txt` for SHA256 checksums of all binaries.
files: |
dist/*
draft: false
prerelease: ${{ contains(github.ref_name, '-') }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_TAP_TOKEN: ${{ steps.app-token.outputs.token }}
69 changes: 69 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
version: 2

project_name: atl

builds:
- main: ./cmd/atl
binary: atl
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
ldflags:
- -s -w
- -X main.version={{.Version}}
- -X main.commit={{.ShortCommit}}
- -X main.date={{.Date}}

archives:
- formats:
- tar.gz
format_overrides:
- goos: windows
formats:
- zip

checksum:
name_template: checksums.txt

changelog:
sort: asc

release:
github:
owner: enthus-appdev
name: atl-cli
Comment thread
fank marked this conversation as resolved.
header: |
## Installation

### Homebrew (macOS and Linux)
```bash
brew install enthus-appdev/tap/atl
```

### Binary download
Download the archive for your platform below, extract, and add to your PATH.

brews:
Comment thread
fank marked this conversation as resolved.
- name: atl
repository:
owner: enthus-appdev
name: homebrew-tap
token: "{{ .Env.HOMEBREW_TAP_TOKEN }}"
directory: Formula
homepage: https://github.com/enthus-appdev/atl-cli
description: "Jira and Confluence CLI - a CLI alternative to the Atlassian MCP"
license: MIT
commit_author:
name: enthus-appdev-tap-bumper[bot]
email: 275364917+enthus-appdev-tap-bumper[bot]@users.noreply.github.com
commit_msg_template: "chore(formula): bump {{ .ProjectName }} to {{ .Tag }}"
test: |
assert_match version.to_s, shell_output("#{bin}/atl --version")
install: |
bin.install "atl"
Loading