Skip to content

Commit 3c65a1a

Browse files
committed
first commit
0 parents  commit 3c65a1a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+2887
-0
lines changed

.github/workflows/release.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
goreleaser:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
20+
- name: Fetch all tags
21+
run: git fetch --force --tags
22+
23+
- name: Set up Go
24+
uses: actions/setup-go@v5
25+
with:
26+
go-version: '1.21'
27+
cache: true
28+
29+
- name: Run GoReleaser
30+
uses: goreleaser/goreleaser-action@v5
31+
with:
32+
distribution: goreleaser
33+
version: latest
34+
args: release --clean
35+
env:
36+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/test.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [ master, main ]
6+
pull_request:
7+
branches: [ master, main ]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
go-version: ['1.21', '1.22']
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- name: Set up Go
20+
uses: actions/setup-go@v4
21+
with:
22+
go-version: ${{ matrix.go-version }}
23+
24+
- name: Download dependencies
25+
run: go mod download
26+
27+
- name: Run tests
28+
run: go test -v ./...

.gitignore

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Binaries for programs and plugins
2+
*.exe
3+
*.exe~
4+
*.dll
5+
*.so
6+
*.dylib
7+
8+
# Test binary, built with `go test -c`
9+
*.test
10+
11+
# Output of the go coverage tool
12+
*.out
13+
14+
# Go workspace file
15+
go.work
16+
17+
# Dependency directories
18+
vendor/
19+
20+
# Build output
21+
bin/
22+
dist/
23+
build/
24+
25+
# IDE specific files
26+
.idea/
27+
.vscode/
28+
*.swp
29+
*.swo
30+
*~
31+
.DS_Store
32+
33+
# Application binary
34+
stacktodate
35+
36+
# Claude Code
37+
.claude/

.goreleaser.yml

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
version: 2
2+
3+
before:
4+
hooks:
5+
- go mod tidy
6+
- go test ./...
7+
8+
builds:
9+
- id: stacktodate
10+
main: ./main.go
11+
binary: stacktodate
12+
13+
ldflags:
14+
- -s -w
15+
- -X github.com/stacktodate/stacktodate-cli/internal/version.Version={{.Version}}
16+
- -X github.com/stacktodate/stacktodate-cli/internal/version.Commit={{.Commit}}
17+
- -X github.com/stacktodate/stacktodate-cli/internal/version.Date={{.Date}}
18+
- -X github.com/stacktodate/stacktodate-cli/internal/version.BuiltBy=goreleaser
19+
20+
env:
21+
- CGO_ENABLED=0
22+
goos:
23+
- linux
24+
- darwin
25+
- windows
26+
goarch:
27+
- amd64
28+
- arm64
29+
30+
ignore:
31+
- goos: windows
32+
goarch: arm64
33+
34+
archives:
35+
- id: stacktodate-archives
36+
format_overrides:
37+
- goos: windows
38+
format: zip
39+
40+
name_template: >-
41+
stacktodate_
42+
{{- .Version }}_
43+
{{- .Os }}_
44+
{{- .Arch }}
45+
46+
files:
47+
- LICENSE*
48+
- README.md
49+
- CHANGELOG.md
50+
51+
checksum:
52+
name_template: 'checksums.txt'
53+
algorithm: sha256
54+
55+
changelog:
56+
sort: asc
57+
use: github
58+
filters:
59+
exclude:
60+
- '^docs:'
61+
- '^test:'
62+
- '^ci:'
63+
- '^chore:'
64+
- 'typo'
65+
groups:
66+
- title: Features
67+
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
68+
order: 0
69+
- title: 'Bug fixes'
70+
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
71+
order: 1
72+
- title: 'Enhancements'
73+
regexp: '^.*?enhance(\([[:word:]]+\))??!?:.+$'
74+
order: 2
75+
- title: Others
76+
order: 999
77+
78+
release:
79+
github:
80+
owner: stacktodate
81+
name: stacktodate-cli
82+
83+
draft: true
84+
85+
prerelease: auto
86+
87+
name_template: "Release {{.Tag}}"
88+
89+
footer: |
90+
## Installation
91+
92+
Download the appropriate binary for your platform from the assets below.
93+
94+
### Quick Install (macOS/Linux)
95+
```bash
96+
# macOS Intel
97+
curl -L https://github.com/stacktodate/stacktodate-cli/releases/download/{{ .Tag }}/stacktodate_{{ .Version }}_darwin_amd64.tar.gz | tar xz
98+
99+
# macOS Apple Silicon
100+
curl -L https://github.com/stacktodate/stacktodate-cli/releases/download/{{ .Tag }}/stacktodate_{{ .Version }}_darwin_arm64.tar.gz | tar xz
101+
102+
# Linux x86_64
103+
curl -L https://github.com/stacktodate/stacktodate-cli/releases/download/{{ .Tag }}/stacktodate_{{ .Version }}_linux_amd64.tar.gz | tar xz
104+
```
105+
106+
**Full Changelog**: https://github.com/stacktodate/stacktodate-cli/compare/{{ .PreviousTag }}...{{ .Tag }}

CHANGELOG.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [0.1.0] - 2025-01-02
11+
12+
### Added
13+
- Initial release
14+
- Auto-detect technologies (Go, Node.js, Python, Ruby, Rails, Docker)
15+
- Initialize project with `stacktodate init`
16+
- Push tech stack to Stack To Date platform
17+
- Interactive mode for version selection
18+
- Support for multiple version file formats
19+
- GoReleaser automation for multi-platform binary releases
20+
21+
[Unreleased]: https://github.com/stacktodate/stacktodate-cli/compare/v0.1.0...HEAD
22+
[0.1.0]: https://github.com/stacktodate/stacktodate-cli/releases/tag/v0.1.0

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Jose Galisteo
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)