Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add datasets watcher #23

Merged
merged 5 commits into from
Sep 20, 2023
Merged

feat: add datasets watcher #23

merged 5 commits into from
Sep 20, 2023

Conversation

dwisiswant0
Copy link
Collaborator

@dwisiswant0 dwisiswant0 commented Sep 20, 2023

IMPORTANT: Please do not create a PR without creating an issue first!

(Any change needs to be discussed before proceeding. Failure to do so may result in the rejection of the pull request).

Summary

feat: add datasets watcher

Proposed of changes

This PR fixes/implements the following bugs/features:

  • Bug 1
  • Bug 2
  • Feature 1
  • Feature 2
  • Breaking changes

How has this been tested?

Proof:

Closing issues

Fixes #

Checklist:

  • My code follows the code style of this project.
  • My changes successfully ran and pass linters locally (run make lint).
  • I have written new tests for my changes.
    • My changes successfully ran and pass tests locally.
  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.

@dwisiswant0 dwisiswant0 merged commit c2b9381 into wip Sep 20, 2023
3 of 4 checks passed
@dwisiswant0 dwisiswant0 deleted the feat/datasets-cron branch September 20, 2023 11:31
dwisiswant0 added a commit that referenced this pull request Oct 6, 2023
* add docs

* tunnel: seperate errs

* refactor: init 0.1

* build: enable CGO

* ci(release): remove docker job

* ci(release): install build-essential

* build(goreleaser): refactor envs & archives

* build(goreleaser): remove unused envs

* build(make): seperate ldflags

* ci(tests): add branch trigger, build & clean steps

* build(mod): tidy up

* feat(cmd): print detailed err

* misc: add more ignore files

* build(mod): tidy up

* build(mod): bump teler-waf

* fix(common): typo option desc

* build: add Dockerfile

* feat(runner): implement graceful shutdown

* feat(runner): add reachable dest addr check

* feat(runner): add runner server util funcs

* build(deps): bump golangci/golangci-lint-action from 2 to 3 (#5)

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 2 to 3.
- [Release notes](https://github.com/golangci/golangci-lint-action/releases)
- [Commits](golangci/golangci-lint-action@v2...v3)

---
updated-dependencies:
- dependency-name: golangci/golangci-lint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat(runner): add file config watcher

* fix(runner): add err handle on watch config file

* fix(runner): handle concurrent access to shutdown

* feat(common): add TLS interface

* feat(runner): implement TLS server

* chore(cmd): change field

* feat(tunnel): move up the validation

* build(mod): bump teler-waf

* build(deps): bump github.com/fsnotify/fsnotify from 1.4.9 to 1.6.0 (#6)

Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.4.9 to 1.6.0.
- [Release notes](https://github.com/fsnotify/fsnotify/releases)
- [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md)
- [Commits](fsnotify/fsnotify@v1.4.9...v1.6.0)

---
updated-dependencies:
- dependency-name: github.com/fsnotify/fsnotify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: add example configs

* chore: update readme

* docs: update arc

* docs: update usage

* chore: add demo

* chore: update docker stuff

* doc(README): add configuration

* doc: update demo readme

* chore(ISSUE_TEMPLATE): update bug_report tpl

* chore: update demo

* chore: bump teler-waf

* docs: update readme

* chore: add .semgrepignore

* chore: add goreleaser config

* ci: add release & publish workflow

* ci(release-publish): fix relase & publish

* ci(release-publish): add new input for workflow dispatch event

* ci(release-publish): add working-directory for release step

* ci(release-publish): add debug

* docs(README): update config doc

* build(deps): bump github.com/charmbracelet/log from 0.2.2 to 0.2.3 (#8)

Bumps [github.com/charmbracelet/log](https://github.com/charmbracelet/log) from 0.2.2 to 0.2.3.
- [Release notes](https://github.com/charmbracelet/log/releases)
- [Commits](charmbracelet/log@v0.2.2...v0.2.3)

---
updated-dependencies:
- dependency-name: github.com/charmbracelet/log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* ci(release-publish): add debug by git cmd

* ci(release-publish): debug step

* ci(release-publish): debug step

* ci(release-publish): debug step

* fix(internal): signal handling for notify Windows runner

Previously, the signal handling in `runner` method caused
compilation errors on Windows due to references to Unix-specific
signals. This commit addresses the issue by removing the
reference to `syscall.SIGUSR1`, which is not available on Windows.

Signed-off-by: Dwi Siswanto <[email protected]>

* ci(release-publish): add fallback for inputs.tag with github.ref_name

* ci(release-publish): add fallback for inputs.tag with github.ref_name

* fix(internal): signal handling for notify Windows runner

Previously, the signal handling in `runner` method caused
compilation errors on Windows due to references to Unix-specific
signals. This commit addresses the issue by removing the
reference to `syscall.SIGUSR1`, which is not available on Windows.

Signed-off-by: Dwi Siswanto <[email protected]>

* ci(release-publish): remove fetch-depth param

* docs(README): update installation usage

* docs(README): add custom response usage

* build(deps): bump teler-waf

* build(deps): bump teler-waf

* chore: update example configs

* test(tunnel): add test cases

* refactor(tunnel): check dest URL protocol

Previously, the NewTunnel function assumed that the destination
URL always starts with "http://" and added it if not present.
This commit refactors the logic to properly check for the scheme
and add "http://" if the scheme is missing or invalid.

The changes include:

* Checking for "http://" or "https://" prefixes in the destination
URL.
* If the prefix is missing or invalid, "http://" is appended to the
destination URL.
* This ensures that the ReverseProxy uses a valid destination URL
for forwarding requests.

This fix addresses potential issues when the destination URL is
provided without a proper scheme, leading to incorrect behavior of
the tunnel.

Signed-off-by: Dwi Siswanto <[email protected]>

* test(common): add tests for validator

* build(deps): bump teler-waf

* docs(README): minor install notice & link to latest pkg

* docs(README): add assets

* chore: add codeowners

* docs: update blockquote notices

* build(deps): bump docker/build-push-action from 4.0.0 to 4.1.1 (#11)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.0.0 to 4.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](docker/build-push-action@v4.0.0...v4.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump docker/login-action from 2.1.0 to 2.2.0 (#10)

Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: add dest builder

* test: add tunnel test case

* ci: add disable analyze tests arg for golangci job

* build(deps): bump teler-waf

* test(tunnel): add test case for ServeHTTP method

* buid(deps): tidy up & add go-colorable pkg

* feat(common): add Logger interface

* feat(*): using common Logger

* docs(README): add community

* docs(README): add Excludes warning

* fix(runner): check for dest address instead of 0 arg

* chore: bump teler-waf

* build(deps): bump github.com/charmbracelet/log from 0.2.3 to 0.2.4 (#12)

Bumps [github.com/charmbracelet/log](https://github.com/charmbracelet/log) from 0.2.3 to 0.2.4.
- [Release notes](https://github.com/charmbracelet/log/releases)
- [Commits](charmbracelet/log@v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: github.com/charmbracelet/log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/kitabisa/teler-waf from 1.1.2 to 1.1.3 (#13)

Bumps [github.com/kitabisa/teler-waf](https://github.com/kitabisa/teler-waf) from 1.1.2 to 1.1.3.
- [Release notes](https://github.com/kitabisa/teler-waf/releases)
- [Commits](teler-sh/teler-waf@v1.1.2...v1.1.3)

---
updated-dependencies:
- dependency-name: github.com/kitabisa/teler-waf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(demo): add make scripts && build args

* docs(demo): update run commands

* build(deps): bump teler-waf

* chore: add chart (#14)

* build(deps): bump github.com/kitabisa/teler-waf from 1.1.4 to 1.1.5 (#15)

Bumps [github.com/kitabisa/teler-waf](https://github.com/kitabisa/teler-waf) from 1.1.4 to 1.1.5.
- [Release notes](https://github.com/kitabisa/teler-waf/releases)
- [Commits](teler-sh/teler-waf@v1.1.4...v1.1.5)

---
updated-dependencies:
- dependency-name: github.com/kitabisa/teler-waf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump github.com/kitabisa/teler-waf from 1.1.5 to 1.1.7 (#16)

Bumps [github.com/kitabisa/teler-waf](https://github.com/kitabisa/teler-waf) from 1.1.5 to 1.1.7.
- [Release notes](https://github.com/kitabisa/teler-waf/releases)
- [Commits](teler-sh/teler-waf@v1.1.5...v1.1.7)

---
updated-dependencies:
- dependency-name: github.com/kitabisa/teler-waf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(make): add -trimpath for build

* chore: update goreleaser cfg

* add hooks
* set prelease for release
* additional archive files

Signed-off-by: Dwi Siswanto <[email protected]>

* chore: update gitignore

* test(tunnel): DRYing dest input

* docs(README): update video url

* build(make): add build-pgo cmd

* build(make): add bench, cover, and pprof

* test(tunnel): add benchmark funcs

* build: generate-pgo workflow

* build(generate-pgo): update job name

* build(generate-pgo): add module download step

* build(make): add test-all & '-race' flag for test

* build(generate-pgo): add http server

* build(pgo): generate default PGO profile 🤖

* docs(README): add note for go1.20+

* docs(README): add additional step for manual build and
add notes for excludes

* build(go.mod): bump teler-waf

* build(pgo): generate default PGO profile 🤖

* build(codeql): update trigger events

* build(tests): add tests as dependents jobs

* build(make): set none run test for bench

* build(release): add setup-go action
and use stable go version

* build(goreleaser): add -pgo flag

* build(docker): add -pgo flag

* build: disable analyze tests for linter

* feat: add datasets watcher (#23)

* feat(internal): add cron pkg

* feat: add datasets watcher

* chore: rm unused file

* feat: add const err msg

* fix: add err check for run.cron

* build(pgo): generate default PGO profile 🤖

* build(mod): bump teler-waf to v1.2.0-beta.2

* build(pgo): generate default PGO profile 🤖

* docs(README): add config warn note

* fix: nil pointer of `run.watcher.{config,datasets}.Events`

Signed-off-by: Dwi Siswanto <[email protected]>

* fix(runner): return `true` if no cfg path in `shouldCron`

* refactor(runner): use `sync.Once` instead of `sync.Mutex`

Signed-off-by: Dwi Siswanto <[email protected]>

* build(mod): bump teler-waf

* build(pgo): generate default PGO profile 🤖

* docs: add verbose field

* build(ci): remove wip from branches

---------

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Dwi Siswanto <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ghost <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant