Merge branch 'master' into bump-datadogunifi-1
This commit is contained in:
		
						commit
						6b9392384f
					
				|  | @ -0,0 +1,58 @@ | ||||||
|  | name: Build | ||||||
|  | 
 | ||||||
|  | on: [push] | ||||||
|  | 
 | ||||||
|  | permissions: | ||||||
|  |   contents: read | ||||||
|  |   # Optional: allow read access to pull request. Use with `only-new-issues` option. | ||||||
|  |   # pull-requests: read | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   test: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         go: [1.19] | ||||||
|  |         os: [ubuntu-latest, macos-latest, windows-latest] | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  | 
 | ||||||
|  |       - name: Set up Go | ||||||
|  |         uses: actions/setup-go@v3 | ||||||
|  |         with: | ||||||
|  |           go-version: ${{ matrix.go }} | ||||||
|  | 
 | ||||||
|  |       - name: Build | ||||||
|  |         run: go build -v ./... | ||||||
|  | 
 | ||||||
|  |       - name: Test | ||||||
|  |         run: go test -v ./... | ||||||
|  |   lint: | ||||||
|  |     strategy: | ||||||
|  |       matrix: | ||||||
|  |         go: [1.19] | ||||||
|  |         os: [ubuntu-latest, macos-latest, windows-latest] | ||||||
|  |     name: lint | ||||||
|  |     runs-on: ${{ matrix.os }} | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |       - name: Set up Go | ||||||
|  |         uses: actions/setup-go@v3 | ||||||
|  |         with: | ||||||
|  |           go-version: ${{ matrix.go }} | ||||||
|  |       - name: golangci-lint | ||||||
|  |         uses: golangci/golangci-lint-action@v3 | ||||||
|  |         with: | ||||||
|  |           # Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version. | ||||||
|  |           version: v1.50.1 | ||||||
|  |           # Optional: working directory, useful for monorepos | ||||||
|  |           # working-directory: somedir | ||||||
|  | 
 | ||||||
|  |           # Optional: golangci-lint command line arguments. | ||||||
|  |           # args: --issues-exit-code=0 | ||||||
|  |           args: --timeout=3m | ||||||
|  |           # we have installed go already | ||||||
|  |           skip-go-installation: true | ||||||
|  | 
 | ||||||
|  |           # Optional: show only new issues if it's a pull request. The default value is `false`. | ||||||
|  |           # only-new-issues: true | ||||||
|  | @ -0,0 +1,56 @@ | ||||||
|  | name: Release | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     # run only against tags | ||||||
|  |     tags: | ||||||
|  |       - '*' | ||||||
|  | 
 | ||||||
|  | permissions: | ||||||
|  |   contents: write | ||||||
|  |   packages: write | ||||||
|  |   # issues: write | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   release: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     env: | ||||||
|  |       DOCKER_CLI_EXPERIMENTAL: "enabled" | ||||||
|  |       DOCKER_REGISTRY: "ghcr.io" | ||||||
|  |       DOCKER_IMAGE_NAME: "unpoller/unpoller" | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - run: git fetch --force --tags | ||||||
|  |       - name: Set up QEMU | ||||||
|  |         uses: docker/setup-qemu-action@v1 | ||||||
|  |       - name: Set up Docker Buildx | ||||||
|  |         id: buildx | ||||||
|  |         uses: docker/setup-buildx-action@v2 | ||||||
|  |       - name: Login to GitHub Container Registry | ||||||
|  |         uses: docker/login-action@v2 | ||||||
|  |         with: | ||||||
|  |           registry: ghcr.io | ||||||
|  |           username: ${{ github.actor }} | ||||||
|  |           password: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |       - uses: actions/setup-go@v3 | ||||||
|  |         with: | ||||||
|  |           go-version: '>=1.19.3' | ||||||
|  |           cache: true | ||||||
|  |       # More assembly might be required: Docker logins, GPG, etc. It all depends | ||||||
|  |       # on your needs. | ||||||
|  |       - uses: goreleaser/goreleaser-action@v2 | ||||||
|  |         with: | ||||||
|  |           # either 'goreleaser' (default) or 'goreleaser-pro': | ||||||
|  |           distribution: goreleaser-pro | ||||||
|  |           version: latest | ||||||
|  |           args: release --rm-dist | ||||||
|  |         env: | ||||||
|  |           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |           # Your GoReleaser Pro key, if you are using the 'goreleaser-pro' | ||||||
|  |           # distribution: | ||||||
|  |           GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} | ||||||
|  |           DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }} | ||||||
|  |           DOCKER_IMAGE_NAME: ${{ env.DOCKER_IMAGE_NAME }} | ||||||
|  | 
 | ||||||
|  | @ -0,0 +1,173 @@ | ||||||
|  | # .goreleaser.yaml | ||||||
|  | builds: | ||||||
|  |   - env: | ||||||
|  |     - CGO_ENABLED=0 | ||||||
|  |     binary: unpoller | ||||||
|  |     goarm: | ||||||
|  |       - 6 | ||||||
|  |       - 7 | ||||||
|  |     goos: | ||||||
|  |       - linux | ||||||
|  |       - darwin | ||||||
|  |       - windows | ||||||
|  |       - freebsd | ||||||
|  |     goarch: | ||||||
|  |       - amd64 | ||||||
|  |       - arm64 | ||||||
|  |       - arm | ||||||
|  |     ignore: | ||||||
|  |       - goos: darwin | ||||||
|  |         goarch: 386 | ||||||
|  |       - goarm: mips64 | ||||||
|  |       - gomips: hardfloat | ||||||
|  |       - goamd64: v4 | ||||||
|  |       - goos: freebsd | ||||||
|  |         goarch: 386 | ||||||
|  | dockers: | ||||||
|  |   - # amd64 | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-amd64" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-amd64" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-amd64" | ||||||
|  |     use: buildx | ||||||
|  |     build_flag_templates: | ||||||
|  |       - "--pull" | ||||||
|  |       - "--label=org.opencontainers.image.created={{.Date}}" | ||||||
|  |       - "--label=org.opencontainers.image.title={{.ProjectName}}" | ||||||
|  |       - "--label=org.opencontainers.image.revision={{.FullCommit}}" | ||||||
|  |       - "--label=org.opencontainers.image.version={{.Version}}" | ||||||
|  |       - "--label=org.opencontainers.image.documentation='https://unpoller.com/docs/install/docker'" | ||||||
|  |       - "--label=org.opencontainers.image.description='Telemetry and Observability for your UniFi Network'" | ||||||
|  |       - "--label=org.opencontainers.image.url='https://unpoller.com'" | ||||||
|  |       - "--label=org.opencontainers.image.source={{ .GitURL }}" | ||||||
|  |       - "--label=org.opencontainers.image.vendor=unpoller" | ||||||
|  |       - "--label=org.opencontainers.image.licenses=MIT" | ||||||
|  |       - "--platform=linux/amd64" | ||||||
|  |     push_flags: | ||||||
|  |       - --tls-verify=false | ||||||
|  |     extra_files: | ||||||
|  |       - "examples/up.conf.example" | ||||||
|  |       - "examples/up.json.example" | ||||||
|  |       - "examples/up.yaml.example" | ||||||
|  |   - # arm64 | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-arm64v8" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-arm64v8" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-arm64v8" | ||||||
|  |     use: buildx | ||||||
|  |     build_flag_templates: | ||||||
|  |       - "--pull" | ||||||
|  |       - "--label=org.opencontainers.image.created={{.Date}}" | ||||||
|  |       - "--label=org.opencontainers.image.title={{.ProjectName}}" | ||||||
|  |       - "--label=org.opencontainers.image.revision={{.FullCommit}}" | ||||||
|  |       - "--label=org.opencontainers.image.version={{.Version}}" | ||||||
|  |       - "--label=org.opencontainers.image.documentation='https://unpoller.com/docs/install/docker'" | ||||||
|  |       - "--label=org.opencontainers.image.description='Telemetry and Observability for your UniFi Network'" | ||||||
|  |       - "--label=org.opencontainers.image.url='https://unpoller.com'" | ||||||
|  |       - "--label=org.opencontainers.image.source={{ .GitURL }}" | ||||||
|  |       - "--label=org.opencontainers.image.vendor=unpoller" | ||||||
|  |       - "--label=org.opencontainers.image.licenses=MIT" | ||||||
|  |       - "--platform=linux/arm64" | ||||||
|  |     push_flags: | ||||||
|  |       - --tls-verify=false | ||||||
|  |     extra_files: | ||||||
|  |       - "examples/up.conf.example" | ||||||
|  |       - "examples/up.json.example" | ||||||
|  |       - "examples/up.yaml.example" | ||||||
|  |   - # armv7 | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-armv7" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-armv7" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-armv7" | ||||||
|  |     use: buildx | ||||||
|  |     build_flag_templates: | ||||||
|  |       - "--pull" | ||||||
|  |       - "--label=org.opencontainers.image.created={{.Date}}" | ||||||
|  |       - "--label=org.opencontainers.image.title={{.ProjectName}}" | ||||||
|  |       - "--label=org.opencontainers.image.revision={{.FullCommit}}" | ||||||
|  |       - "--label=org.opencontainers.image.version={{.Version}}" | ||||||
|  |       - "--label=org.opencontainers.image.documentation='https://unpoller.com/docs/install/docker'" | ||||||
|  |       - "--label=org.opencontainers.image.description='Telemetry and Observability for your UniFi Network'" | ||||||
|  |       - "--label=org.opencontainers.image.url='https://unpoller.com'" | ||||||
|  |       - "--label=org.opencontainers.image.source={{ .GitURL }}" | ||||||
|  |       - "--label=org.opencontainers.image.vendor=unpoller" | ||||||
|  |       - "--label=org.opencontainers.image.licenses=MIT" | ||||||
|  |       - "--platform=linux/arm/v7" | ||||||
|  |     push_flags: | ||||||
|  |       - --tls-verify=false | ||||||
|  |     extra_files: | ||||||
|  |       - "examples/up.conf.example" | ||||||
|  |       - "examples/up.json.example" | ||||||
|  |       - "examples/up.yaml.example" | ||||||
|  | docker_manifests: | ||||||
|  |   - name_template: '{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest' | ||||||
|  |     create_flags: | ||||||
|  |       - --insecure | ||||||
|  |     push_flags: | ||||||
|  |       - --insecure | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-amd64" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-arm64v8" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:latest-armv7" | ||||||
|  |   - name_template: '{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}' | ||||||
|  |     create_flags: | ||||||
|  |       - --insecure | ||||||
|  |     push_flags: | ||||||
|  |       - --insecure | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-amd64" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-arm64v8" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:{{ .Tag }}-armv7" | ||||||
|  |   - name_template: '{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}' | ||||||
|  |     create_flags: | ||||||
|  |       - --insecure | ||||||
|  |     push_flags: | ||||||
|  |       - --insecure | ||||||
|  |     image_templates: | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-amd64" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-arm64v8" | ||||||
|  |       - "{{ .Env.DOCKER_REGISTRY }}/{{ .Env.DOCKER_IMAGE_NAME }}:v{{ .Major }}-armv7" | ||||||
|  | 
 | ||||||
|  | nfpms: | ||||||
|  |   - | ||||||
|  |     replacements: | ||||||
|  |       amd64: 64-bit | ||||||
|  |       386: 32-bit | ||||||
|  |       darwin: macOS | ||||||
|  |       linux: Tux | ||||||
|  | 
 | ||||||
|  |     vendor: unpoller | ||||||
|  |     homepage: https://unpoller.com/ | ||||||
|  |     maintainer: unpoller.com | ||||||
|  |     description: Telemetry and Observability for your UniFi Network | ||||||
|  |     license: MIT | ||||||
|  |     formats: | ||||||
|  |       - apk | ||||||
|  |       - deb | ||||||
|  |       - rpm | ||||||
|  |       - termux.deb # Since GoReleaser v1.11. | ||||||
|  |     bindir: /usr/bin | ||||||
|  |     version_metadata: git | ||||||
|  |     section: default | ||||||
|  |     priority: extra | ||||||
|  | 
 | ||||||
|  |     # Contents to add to the package. | ||||||
|  |     # GoReleaser will automatically add the binaries. | ||||||
|  |     contents: | ||||||
|  |       - dst: /etc/unpoller | ||||||
|  |         type: dir | ||||||
|  |         file_info: | ||||||
|  |           mode: 0700 | ||||||
|  | 
 | ||||||
|  |       # Example config files | ||||||
|  |       - src: examples/up.conf.example | ||||||
|  |         dst: /etc/unpoller/up.conf.example | ||||||
|  |         type: config | ||||||
|  |       - src: examples/up.json.example | ||||||
|  |         dst: /etc/unpoller/up.json.example | ||||||
|  |         type: config | ||||||
|  |       - src: examples/up.yaml.example | ||||||
|  |         dst: /etc/unpoller/up.yaml.example | ||||||
|  |         type: config | ||||||
|  | universal_binaries: | ||||||
|  |   - replace: true | ||||||
|  | @ -4,12 +4,12 @@ jobs: | ||||||
|   - os: osx |   - os: osx | ||||||
|     osx_image: xcode12 |     osx_image: xcode12 | ||||||
|     language: go |     language: go | ||||||
|     go: 1.16.x |     go: 1.19.x | ||||||
|   - os: linux |   - os: linux | ||||||
|     dist: bionic |     dist: focal | ||||||
|     services: docker |     services: docker | ||||||
|     language: go |     language: go | ||||||
|     go: 1.16.x |     go: 1.19.x | ||||||
| git: | git: | ||||||
|   depth: false |   depth: false | ||||||
| addons: | addons: | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | FROM gcr.io/distroless/static-debian11 | ||||||
|  | 
 | ||||||
|  | COPY unpoller /usr/bin/unpoller | ||||||
|  | 
 | ||||||
|  | ENTRYPOINT [ "/usr/bin/unpoller" ] | ||||||
							
								
								
									
										12
									
								
								Makefile
								
								
								
								
							
							
						
						
									
										12
									
								
								Makefile
								
								
								
								
							|  | @ -352,14 +352,14 @@ $(patsubst %,%.darwin.so,$(PLUGINS)): | ||||||
| 	GOOS=darwin go build -o $@ -ldflags "$(VERSION_LDFLAGS)" -buildmode=plugin ./plugins/$(patsubst %.darwin.so,%,$@) | 	GOOS=darwin go build -o $@ -ldflags "$(VERSION_LDFLAGS)" -buildmode=plugin ./plugins/$(patsubst %.darwin.so,%,$@) | ||||||
| 
 | 
 | ||||||
| # Run code tests and lint.
 | # Run code tests and lint.
 | ||||||
| test: lint | test: # lint
 | ||||||
| 	# Testing. | 	# Testing. | ||||||
| 	go test -race -covermode=atomic ./... | 	go test -race -covermode=atomic ./... | ||||||
| lint: | #lint:
 | ||||||
| 	# Checking lint. | #	# Checking lint.
 | ||||||
| 	GOOS=linux $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) | #	GOOS=linux $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
 | ||||||
| 	GOOS=freebsd $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) | #	GOOS=freebsd $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
 | ||||||
| 	GOOS=windows $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS) | #	GOOS=windows $(shell go env GOPATH)/bin/golangci-lint run $(GOLANGCI_LINT_ARGS)
 | ||||||
| 
 | 
 | ||||||
| # Mockgen and bindata are examples.
 | # Mockgen and bindata are examples.
 | ||||||
| # Your `go generate` may require other tools; add them!
 | # Your `go generate` may require other tools; add them!
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue