Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
132 commits
Select commit Hold shift + click to select a range
c81e1be
Catch agent crashes (#130)
lucaspin Oct 13, 2021
171f701
Fix goreleaser (#131)
lucaspin Oct 13, 2021
b1f7ab1
Self-hosted agent implementation (#91)
shiroyasha Nov 1, 2021
88f2fc5
Use SEMAPHORE_AGENT_LOG_LEVEL (#134)
lucaspin Nov 12, 2021
d21ce66
Use github-release-bot-agent secret for release (#135)
lucaspin Nov 18, 2021
4e3453f
Set commit_author for goreleaser (#137)
lucaspin Nov 23, 2021
473d5f2
Include additional env vars on installation script (#138)
lucaspin Dec 3, 2021
1f67db9
Shutdown agent after idle timeout (#140)
lucaspin Dec 14, 2021
d77e1a1
Allow installation without agent start (#141)
lucaspin Jan 3, 2022
4218921
Fix grammar mistake while failing to decode file content (#139)
shiroyasha Jan 3, 2022
fb9c58a
Setup security checks (#136)
lucaspin Jan 12, 2022
0312e2d
Expose SEMAPHORE_AGENT_LOG_FILE_PATH (#143)
lucaspin Feb 23, 2022
444c6be
Use 0644 when exposing env vars on docker-compose executor (#147)
lucaspin Mar 9, 2022
fc7e17f
Initial Windows support (#144)
lucaspin Mar 10, 2022
e46323e
Move shell executor E2Es to Go tests (#145)
lucaspin Mar 10, 2022
8b49ac0
Add PowerShell installation script (#146)
lucaspin Mar 10, 2022
271b1bd
Check error reading environment file (#148)
lucaspin Mar 11, 2022
2c1decf
Grab STDOUT AND STDERR when executing shutdown hook (#142)
lucaspin Mar 11, 2022
60c13fb
Support SEMAPHORE_ENDPOINT on installation script (#149)
lucaspin Mar 15, 2022
15e5751
fix: update github.com/spf13/viper to v1.11.0 (#150)
lucaspin May 2, 2022
3fc6a6a
feat: allow toolbox version to be specified during installation (#151)
lucaspin May 3, 2022
81194e7
fix: update hub reference dependencies (#152)
lucaspin May 30, 2022
f49dc8e
feat: refresh token used for logs (#154)
lucaspin Jul 11, 2022
4ca77aa
build: update goreleaser config (#155)
lucaspin Jul 11, 2022
46b4475
fix: limit the amount of logs per request (#156)
lucaspin Jul 15, 2022
5c2ad12
build: update dependencies (#157)
lucaspin Jul 20, 2022
40ed60b
fix: race conditions on agent shutdown (#158)
lucaspin Jul 26, 2022
643e68a
build: update Go to 1.18 (#160)
lucaspin Aug 4, 2022
3fa555a
fix: avoid unnecessary Write in FileBackend (#159)
lyoung-confluent Aug 5, 2022
75b7c61
fix: disable package-comments lint rule (#163)
lucaspin Aug 9, 2022
64614fc
fix: use random delay for sync requests (#162)
lucaspin Aug 10, 2022
ae27844
feat: add pre-job hook (#161)
lucaspin Aug 10, 2022
3bb946c
fix: always include agent name in logs (#165)
lucaspin Aug 12, 2022
7f8174b
feat: set ECR registry (#166)
lucaspin Aug 16, 2022
c5842b9
feat: configure systemd restart options during installation (#168)
lucaspin Aug 17, 2022
937d96c
fix: always use /tmp for SSH jump point (#169)
lucaspin Aug 17, 2022
d086a01
feat: launchd support in installation script (#167)
lucaspin Aug 22, 2022
fc094fe
feat: allow name to be specified (#170)
lucaspin Aug 22, 2022
b0f19d8
feat: upload trimmed logs as artifact (#164)
lucaspin Aug 22, 2022
7454a85
fix: install toolbox based on os/arch (#171)
lucaspin Aug 24, 2022
4b8b7b1
fix: include response body in registration error log (#172)
lucaspin Sep 12, 2022
cd3ebe0
fix: do not block output flushing on long empty TTY read (#173)
lucaspin Sep 16, 2022
592be29
fix: increase output buffer flush chunk size and timeout (#174)
lucaspin Oct 7, 2022
046a9fd
fix: update dependencies (#175)
lucaspin Nov 7, 2022
3390d5c
fix: race condition on stop-job (#176)
lucaspin Dec 6, 2022
4e2f82a
fix: use the same installation directory for logs (#177)
lucaspin Jan 5, 2023
163ac1e
fix: macOS installation on SEMAPHORE_AGENT_START=false (#178)
lucaspin Jan 12, 2023
48e81dd
feat: basic Kubernetes executor (#179)
lucaspin Feb 1, 2023
1b1d0ee
feat: handle SIGTERM gracefully (#180)
lucaspin Feb 1, 2023
b5d8bd5
feat: k8s executor private image support (#182)
lucaspin Feb 3, 2023
7261628
feat: stop job by returning 130 (#181)
mattrym Feb 6, 2023
f3b5368
feat: update job logs as artifact on agent serve (#183)
lucaspin Feb 7, 2023
c43c1b4
fix: randomize size of TTY read buffer (#184)
lucaspin Feb 8, 2023
99c8f22
fix: update test dependencies (#185)
lucaspin Mar 1, 2023
9c9fe43
fix: cancel k8s executor setup on job stop (#186)
lucaspin Mar 1, 2023
8b7c9b7
fix: stop waiting if image cannot be pulled (#187)
lucaspin Mar 3, 2023
a9eb6c5
build: update dependencies (#188)
lucaspin Mar 3, 2023
b4b8094
fix: update test dependencies (#190)
lucaspin Mar 24, 2023
30b455a
feat: --name-from-env configuration parameter (#191)
lucaspin Mar 27, 2023
61e44b6
feat: --kubernetes-pod-spec parameter (#192)
lucaspin Mar 29, 2023
95500df
feat: add --kubernetes-allowed-images (#193)
lucaspin Mar 29, 2023
0ca88aa
fix: filebackend.Read() should not return double newlines (#194)
lucaspin Apr 6, 2023
b7509bc
feat: public self-hosted agent Docker image (#189)
lucaspin Apr 12, 2023
91bdecc
feat: add --source-pre-job-hook parameter (#195)
lucaspin Apr 14, 2023
7e61437
fix: remove check.docker from CI (#196)
lucaspin Apr 14, 2023
53f549c
feat: post-job hook (#197)
lucaspin May 31, 2023
75cc53a
feat: support --pre-job-hook-path and --files on agent serve (#198)
lucaspin Jun 1, 2023
6f4a214
fix: increase timeout in E2E tests (#199)
lucaspin Jun 1, 2023
9fd772f
fix: always source pre-job hook on agent serve (#200)
lucaspin Jun 6, 2023
f2bd806
feat: follow API instructions on when to sync next (#201)
lucaspin Jul 4, 2023
450ab23
fix: goreleaser configuration (#202)
lucaspin Jul 4, 2023
ba0666c
fix(ci): pin pyyaml to working version (#205)
lucaspin Jul 21, 2023
0ade558
fix: always cleanup k8s resources (#203)
lucaspin Jul 31, 2023
a4a866c
fix: use job ID as pod name in k8s executor (#204)
lucaspin Jul 31, 2023
90e6308
fix: address gosec warnings (#206)
lucaspin Aug 10, 2023
5c97d26
fix: POST /jobs race condition (#207)
lucaspin Aug 11, 2023
2550449
fix: restrict logs on HTTP endpoint (#208)
lucaspin Aug 14, 2023
ef91684
fix: never log full job request (#209)
lucaspin Aug 14, 2023
fdedf54
build: add docker image check (#210)
lucaspin Aug 15, 2023
bd8bce5
fix: linter warning (#212)
lucaspin Aug 30, 2023
3cf2fbb
Create CODEOWNERS
radwo Aug 30, 2023
bb8581b
Merge pull request #211 from semaphoreci/radwo-patch-1
radwo Aug 31, 2023
c77303b
fix: improve high log throughput job speed (#213)
lucaspin Sep 28, 2023
6fbe4b0
build: upgrade to Go 1.20 (#214)
lucaspin Oct 11, 2023
aba1ddc
fix: remove docker resources explicitly (#215)
lucaspin Oct 13, 2023
2636d88
fix: gosec warnings (#216)
lucaspin Oct 17, 2023
04189f1
fix(build): do not use GH binary on docker.build (#217)
lucaspin Oct 18, 2023
d33fbbf
fix: use auth for callbacks (#218)
lucaspin Oct 25, 2023
d7e127c
build: update golang.org/x/net to v0.17.0 (#220)
lucaspin Nov 1, 2023
dd55367
feat: accept URL as registration name (#219)
lucaspin Nov 21, 2023
2e546e8
fix(ci): use ubuntu2004 (#221)
lucaspin Nov 27, 2023
a143937
fix: use docker compose v2 when available (#222)
lucaspin Dec 14, 2023
acd674a
fix: use 30s timeout on HTTP requests (#223)
lucaspin Dec 18, 2023
47f32e3
feat: register agent for specific job (#224)
lucaspin Jan 3, 2024
47f7b63
feat: accept configuration from environment variables (#226)
lucaspin Jan 17, 2024
c1f8a2c
feat: add labels to kubernetes resources (#225)
lucaspin Jan 17, 2024
dcc9afd
fix: no sleep when flushing output buffer (#227)
lucaspin Jan 31, 2024
846348b
fix: configure hostAliases for sidecar containers (#228)
lucaspin Feb 19, 2024
65173d8
fix: update rack to 2.2.8.1 (#230)
lucaspin Mar 5, 2024
86af397
fix: upload job logs as artifact from agent location (#229)
lucaspin Mar 5, 2024
b3c758b
fix(kubernetes): do not use home directory from agent when injecting …
lucaspin Apr 23, 2024
316f829
fix(kubernetes): log error messages from commands when injecting file…
lucaspin Apr 24, 2024
0c3acd9
feat: exit job early successfully (#235)
lucaspin Apr 30, 2024
6b69419
fix: upgrade to Go 1.22 (#239)
lucaspin Jun 13, 2024
c0e1fe1
build(deps): bump golang.org/x/net from 0.17.0 to 0.23.0 (#238)
dependabot[bot] Jun 13, 2024
aa56c76
build(deps): bump google.golang.org/protobuf from 1.31.0 to 1.33.0 (#…
dependabot[bot] Jun 13, 2024
e7bb9ea
fix: publish new image version on release promotion (#241)
lucaspin Jun 14, 2024
1481f5f
fix: update config for goreleaser v2 (#242)
lucaspin Jun 17, 2024
6a82112
build: include binary for ppc64le to release (#244)
lucaspin Jun 17, 2024
657245f
Create LICENSE
AleksandarCole Jun 18, 2024
3704144
Create LICENSE
AleksandarCole Jun 18, 2024
4407b3a
fix: upgrade to Go 1.22.4 (#246)
lucaspin Jun 21, 2024
d0c0c6c
fix: make callback retry attempts configurable (#247)
lucaspin Jul 23, 2024
58209f7
fix: improve eventlogger.GeneratePlainTextFile() performance for big …
lucaspin Aug 8, 2024
24f7f04
feat: set User-Agent HTTP header on requests (#249)
lucaspin Aug 9, 2024
2368d3c
feat: new --expose-kvm-device flag (#250)
lucaspin Sep 13, 2024
6a53759
fix: expose temp file with environment variables in Windows (#252)
lucaspin Oct 2, 2024
86ee0a9
feat: compress job logs above a threshold before uploading it as an a…
lucaspin Oct 3, 2024
e83dc12
build(deps): bump golang.org/x/net from 0.23.0 to 0.33.0 (#254)
dependabot[bot] Jan 17, 2025
94bb642
feat: introduce default container for kubernetes executor (#255)
radwo Jan 23, 2025
c7991b8
docs: Add information about default image used in jobs (#256)
radwo Feb 4, 2025
d14d1e0
build(deps): bump rack from 2.2.8.1 to 2.2.14 in /test/hub_reference …
dependabot[bot] Jun 8, 2025
a4ba30b
build(deps): bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.2 (#…
dependabot[bot] Jun 8, 2025
9878d71
fix: update Dockerfiles to use Ubuntu 22 (#260)
lucaspin Jun 12, 2025
b2396ab
toil: upgrade Go to 1.23 (#262)
lucaspin Jun 13, 2025
1b9107c
build(deps): bump golang.org/x/net from 0.33.0 to 0.38.0 (#261)
dependabot[bot] Jun 13, 2025
05457df
fix: add PATH environment variable to launchd daemon configuration (#…
hamir-suspect Sep 4, 2025
d03fc80
fix(test): security issue in tests: Rack::QueryParser bypass (#264)
hamir-suspect Sep 30, 2025
9936534
fix: prevent splitting \r\n newlines across output buffer chunks (#265)
dexyk Oct 24, 2025
a8e712e
ci: migrate semaphore YAMLs to use Ubuntu 24.04 (#267)
hamir-suspect Jan 14, 2026
239e394
fix: update docker-compose version detection to support future versio…
dexyk Jan 16, 2026
7fc190a
feat: update log artifact to use .gz extension when compressed (#270)
dexyk Feb 3, 2026
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
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@lucaspin
16 changes: 16 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
on: [push, pull_request]
name: Test
jobs:
unit-testing:
runs-on: windows-latest
steps:
- name: Install Go
uses: actions/setup-go@v2
with:
go-version: 1.23.x
- name: Check out repository code
uses: actions/checkout@v2
- name: Install gotestsum
run: go install gotest.tools/gotestsum@latest
- name: Test
run: gotestsum --format short-verbose --packages="./..." -- -p 1
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/build
/log
agent
.vagrant/
59 changes: 49 additions & 10 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
version: 2
project_name: agent
before:
hooks:
- go get ./...
builds:
- env:
- id: non-windows-build
env:
- CGO_ENABLED=0
ldflags:
- -s -w -X main.VERSION={{.Tag}}
Expand All @@ -13,15 +15,49 @@ builds:
goarch:
- 386
- amd64
- arm
- arm64
- ppc64le
- id: windows-build
env:
- CGO_ENABLED=0
ldflags:
- -s -w -X main.VERSION={{.Tag}}
goos:
- windows
goarch:
- 386
- amd64
- arm

archives:
- id: agent
name_template: '{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}'
replacements:
darwin: Darwin
linux: Linux
386: i386
amd64: x86_64
- id: non-windows-archive
builds:
- non-windows-build
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
files:
- README.md
- install.sh

- id: windows-archive
builds:
- windows-build
name_template: >-
{{ .ProjectName }}_
{{- title .Os }}_
{{- if eq .Arch "amd64" }}x86_64
{{- else if eq .Arch "386" }}i386
{{- else }}{{ .Arch }}{{ end }}
{{- if .Arm }}v{{ .Arm }}{{ end }}
files:
- README.md
- install.ps1

checksum:
name_template: '{{ .ProjectName }}_checksums.txt'
Expand All @@ -35,10 +71,13 @@ changelog:
- Merge branch

brews:
- github:
- repository:
owner: semaphoreci
name: homebrew-tap
folder: Formula
commit_author:
name: release-bot-agent
email: contact+release-bot-agent@renderedtext.com
directory: Formula
homepage: https://semaphoreci.com
description: Semaphore 2.0 agent.
test: |
Expand Down
17 changes: 11 additions & 6 deletions .semaphore/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,28 @@ version: "v1.0"
name: Release
agent:
machine:
type: e1-standard-4
os_image: ubuntu1804
type: f1-standard-2
os_image: ubuntu2404
blocks:
- name: "Release"
task:
env_vars:
- name: GO111MODULE
value: "on"
secrets:
- name: sem-robot-ghtoken
- name: github-release-bot-agent
- name: dockerhub-write
prologue:
commands:
- sem-version go 1.13
- sem-version go 1.23.8
- "export GOPATH=~/go"
- "export PATH=/home/semaphore/go/bin:$PATH"
- checkout
jobs:
- name: Sem Agent
- name: Release new version
commands:
- curl -sL https://git.io/goreleaser | bash -s -- --rm-dist
- export GITHUB_TOKEN=$ACCESS_TOKEN
- curl -sL https://git.io/goreleaser | bash -s -- --clean
- echo $DOCKERHUB_PASSWORD | docker login -u $DOCKERHUB_USERNAME --password-stdin
- make docker.build
- make docker.push
Loading