Compare commits

...

2 commits

Author SHA1 Message Date
cd83c525c8
chore(workflow): set up simpler build pipeline
Some checks failed
example / docker-build-push-action-in-lxc (push) Waiting to run
/ example-docker-compose (push) Waiting to run
/ example-lxc-systemd (push) Waiting to run
cascade / debug (push) Failing after 0s
cascade / forgejo (push) Failing after 0s
checks / build and test (push) Failing after 0s
checks / validate mocks (push) Failing after 0s
checks / validate pre-commit-hooks file (push) Failing after 0s
ci / goreleaser (push) Failing after 3m59s
checks / integration tests (push) Has been cancelled
checks / runner exec tests (push) Has been cancelled
checks / runner integration tests (push) Has been cancelled
Build release / release (push) Has been cancelled
publish / publish (push) Has been cancelled
2025-10-30 08:48:02 +00:00
88e6654a6c feat(runner): Added waiting for a job arrival in the one-job command. 2025-10-29 11:12:12 +01:00
3 changed files with 101 additions and 4 deletions

View file

@ -0,0 +1,27 @@
name: ci
on:
push:
tags:
- v*
jobs:
goreleaser:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: ">=1.25.1"
- name: Test code
run: make test
- name: Run GoReleaser
uses: https://github.com/goreleaser/goreleaser-action@v6
env:
GITEA_TOKEN: ${{ secrets.PACKAGES_TOKEN }}
with:
args: release --clean

61
.goreleaser.yaml Normal file
View file

@ -0,0 +1,61 @@
version: 2
before:
hooks:
- go mod download
- go generate ./...
builds:
- env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- arm64
archives:
- formats: [binary]
# this name template makes the OS and Arch compatible with the results of `uname`.
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 }}
changelog:
abbrev: 10
filters:
exclude:
- "^docs:"
- "^test:"
format: "{{.SHA}}: {{.Message}}"
groups:
- title: Features
regexp: '^.*?feat(\([[:word:]]+\))??!?:.+$'
order: 0
- title: "Bug fixes"
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
order: 1
- title: "Chores"
regexp: '^.*?chore(\([[:word:]]+\))??!?:.+$'
order: 2
- title: Others
order: 999
sort: asc
release:
gitea:
owner: DevFW-CICD
name: edge-connect-client
force_token: gitea
gitea_urls:
api: https://edp.buildth.ing/api/v1
download: https://edp.buildth.ing
# set to true if you use a self-signed certificate
skip_tls_verify: false

View file

@ -36,11 +36,20 @@ func NewJob(cfg *config.Config, client client.Client, runner run.RunnerInterface
}
func (j *Job) Run(ctx context.Context) error {
task, ok := j.fetchTask(ctx)
if !ok {
return fmt.Errorf("could not fetch task")
log.Info("Polling for a job...")
for {
task, ok := j.fetchTask(ctx)
if ok {
return j.runTaskWithRecover(ctx, task)
}
// No task available, continue polling
select {
case <-ctx.Done():
return ctx.Err()
default:
// Continue to next iteration
}
}
return j.runTaskWithRecover(ctx, task)
}
func (j *Job) runTaskWithRecover(ctx context.Context, task *runnerv1.Task) error {