Add automated releases with binaries and simplify CI workflow

- Add GoReleaser configuration for Linux binaries (amd64, arm64)
- Add release job to GitHub Actions for tagged versions
- Remove github.server_url validations (Gitea CI disabled)
- Update README with binary download instructions
- Releases will include compiled binaries and changelogs
This commit is contained in:
2025-11-28 00:14:10 +01:00
parent ac521c38a8
commit dda99a63b1
3 changed files with 88 additions and 6 deletions
+28 -3
View File
@@ -11,7 +11,6 @@ jobs:
test:
name: Test
runs-on: ubuntu-latest
if: github.server_url == 'https://github.com'
steps:
- uses: actions/checkout@v4
@@ -35,7 +34,6 @@ jobs:
lint:
name: Lint
runs-on: ubuntu-latest
if: github.server_url == 'https://github.com'
steps:
- uses: actions/checkout@v4
@@ -55,11 +53,38 @@ jobs:
exit 1
fi
release:
name: Create Release
runs-on: ubuntu-latest
needs: [test, lint]
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21'
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
distribution: goreleaser
version: latest
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build:
name: Build and Push Docker Image
runs-on: ubuntu-latest
needs: [test, lint]
if: github.event_name == 'push' && github.server_url == 'https://github.com'
if: github.event_name == 'push'
permissions:
contents: read
packages: write
+48
View File
@@ -0,0 +1,48 @@
version: 2
before:
hooks:
- go mod tidy
builds:
- id: apocapoc-api
main: ./cmd/api
binary: apocapoc-api
env:
- CGO_ENABLED=1
goos:
- linux
goarch:
- amd64
- arm64
ldflags:
- -s -w
archives:
- id: apocapoc-api
name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
format: tar.gz
files:
- README.md
- LICENSE
checksum:
name_template: 'checksums.txt'
changelog:
sort: asc
filters:
exclude:
- '^docs:'
- '^test:'
- '^ci:'
- Merge pull request
- Merge branch
release:
github:
owner: davidfolch
name: apocapoc-api
draft: false
prerelease: auto
name_template: "{{.Tag}}"
+12 -3
View File
@@ -65,12 +65,21 @@ The API will be available at `http://localhost:8080`
### Using the binary
1. Download the latest release
2. Copy `.env.example` to `.env` and configure
3. Run: `./apocapoc-api`
1. Download the latest release from [GitHub Releases](https://github.com/davidfolch/apocapoc-api/releases)
2. Extract the archive:
```bash
tar -xzf apocapoc-api_*_linux_amd64.tar.gz
```
3. Copy `.env.example` to `.env` and configure
4. Run the binary:
```bash
./apocapoc-api
```
The API will be available at `http://localhost:8080`
**Note:** Linux binaries only (amd64 and arm64). For other platforms, use Docker.
## Development
### Prerequisites