You've already forked db-wait
Compare commits
21 Commits
86c8b5f2e5
...
v0.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
e0083e3d4d
|
|||
|
172d8c072b
|
|||
|
8eb0f89d9c
|
|||
|
afb92e9704
|
|||
|
0b31b9d21b
|
|||
| cb1e193e2e | |||
|
9d1a1b4d01
|
|||
| be69ca10fb | |||
|
37683f49e4
|
|||
| 9a911c977e | |||
|
9253a3c388
|
|||
| e38db64fc3 | |||
|
c90c00f000
|
|||
| 1cd2dc2798 | |||
|
5e7846a753
|
|||
| ef5b0b900b | |||
|
b08c57d533
|
|||
| 3d8b3ae802 | |||
|
552903929b
|
|||
| baadcacb54 | |||
|
3dee240d99
|
53
.gitea/workflows/artifacthub-metadata.yaml
Normal file
53
.gitea/workflows/artifacthub-metadata.yaml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
name: Upload ArtifactHub Metadata
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 3 1 * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
upload-metadata:
|
||||||
|
name: "Upload artifacthub-repo.yml to OCI registry"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v6.0.2
|
||||||
|
- uses: docker/login-action@v4.1.0
|
||||||
|
with:
|
||||||
|
registry: ${{ github.server_url }}
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
|
- uses: docker/login-action@v4.1.0
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_IO_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_IO_PASSWORD }}
|
||||||
|
- uses: oras-project/setup-oras@v2.0.0
|
||||||
|
with:
|
||||||
|
version: 1.3.2 # renovate: datasource=github-tags depName=oras-project/oras extractVersion='^v?(?<version>.*)$'
|
||||||
|
- name: Push artifacthub-repo.yml to git.cryptic.systems
|
||||||
|
run: |
|
||||||
|
oras push git.cryptic.systems/volker.raschek/db-wait:artifacthub.io \
|
||||||
|
--config /dev/null:application/vnd.cncf.artifacthub.config.v1+yaml \
|
||||||
|
artifacthub-repo.yml:application/vnd.cncf.artifacthub.repository-metadata.layer.v1.yaml
|
||||||
|
- name: Push public cosign key to git.cryptic.systems
|
||||||
|
env:
|
||||||
|
COSIGN_PUBLIC_KEY: ${{ vars.COSIGN_PUBLIC_KEY }}
|
||||||
|
run: |
|
||||||
|
echo "${COSIGN_PUBLIC_KEY}" > cosign.pub
|
||||||
|
oras push git.cryptic.systems/volker.raschek/db-wait:cosign.pub \
|
||||||
|
--artifact-type application/vnd.dev.cosign.public-key.v1 \
|
||||||
|
--annotation org.opencontainers.image.title=cosign.pub \
|
||||||
|
cosign.pub:application/vnd.dev.cosign.public-key.v1
|
||||||
|
|
||||||
|
- name: Push artifacthub-repo.yml to docker.io
|
||||||
|
run: |
|
||||||
|
oras push docker.io/volkerraschek/db-wait:artifacthub.io \
|
||||||
|
--config /dev/null:application/vnd.cncf.artifacthub.config.v1+yaml \
|
||||||
|
artifacthub-repo.yml:application/vnd.cncf.artifacthub.repository-metadata.layer.v1.yaml
|
||||||
|
- name: Push public cosign key to docker.io
|
||||||
|
env:
|
||||||
|
COSIGN_PUBLIC_KEY: ${{ vars.COSIGN_PUBLIC_KEY }}
|
||||||
|
run: |
|
||||||
|
echo "${COSIGN_PUBLIC_KEY}" > cosign.pub
|
||||||
|
oras push docker.io/volkerraschek/db-wait:cosign.pub \
|
||||||
|
--artifact-type application/vnd.dev.cosign.public-key.v1 \
|
||||||
|
cosign.pub:application/vnd.dev.cosign.public-key.v1
|
||||||
@@ -21,7 +21,7 @@ jobs:
|
|||||||
os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
|
os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6.0.2
|
- uses: actions/checkout@v6.0.2
|
||||||
- uses: actions/setup-go@v6.3.0
|
- uses: actions/setup-go@v6.4.0
|
||||||
with:
|
with:
|
||||||
go-version: ${{ matrix.go }}
|
go-version: ${{ matrix.go }}
|
||||||
- uses: golangci/golangci-lint-action@v9.2.0
|
- uses: golangci/golangci-lint-action@v9.2.0
|
||||||
|
|||||||
@@ -34,9 +34,24 @@ jobs:
|
|||||||
os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
|
os: [ ubuntu-latest-amd64, ubuntu-latest-arm64 ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6.0.2
|
- uses: actions/checkout@v6.0.2
|
||||||
- uses: actions/setup-go@v6.3.0
|
- uses: actions/setup-go@v6.4.0
|
||||||
with:
|
with:
|
||||||
go-version: ${{ matrix.go }}
|
go-version: ${{ matrix.go }}
|
||||||
- env:
|
- env:
|
||||||
GOPROXY: ${{ vars.GOPROXY }}
|
GOPROXY: ${{ vars.GOPROXY }}
|
||||||
run: make test/unit
|
run: make test/unit
|
||||||
|
- id: coverage
|
||||||
|
name: Check coverage
|
||||||
|
run: |
|
||||||
|
coverage="$(make test/coverage | grep total | awk '{ print substr($3, 1, length($3)-1); }')"
|
||||||
|
echo "total_coverage=$coverage" >> $GITHUB_OUTPUT
|
||||||
|
echo "Total coverage: ${coverage}%"
|
||||||
|
# - name: Fail if coverage is to low
|
||||||
|
# run: |
|
||||||
|
# threshold=50
|
||||||
|
# total_coverage=${{ steps.coverage.outputs.total_coverage }}
|
||||||
|
|
||||||
|
# if (( ${total_coverage%.*} < ${threshold} )); then
|
||||||
|
# echo "ERROR: Coverage (${total_coverage}%) is below the threshold (${threshold}%)." 1>&2
|
||||||
|
# exit 1
|
||||||
|
# fi
|
||||||
|
|||||||
@@ -13,25 +13,52 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6.0.2
|
- uses: actions/checkout@v6.0.2
|
||||||
- uses: docker/setup-qemu-action@v3.7.0
|
with:
|
||||||
- uses: actions/setup-go@v6.3.0
|
fetch-depth: 0
|
||||||
|
- name: Install curl
|
||||||
|
run: apt-get update && apt-get install --yes curl
|
||||||
|
- name: Install syft
|
||||||
|
env:
|
||||||
|
SYFT_VERSION: "1.44.0" # renovate: datasource=github-releases depName=anchore/syft
|
||||||
|
run: |
|
||||||
|
OS="$(uname | tr '[:upper:]' '[:lower:]')"
|
||||||
|
ARCH="$(dpkg --print-architecture)"
|
||||||
|
curl \
|
||||||
|
--fail \
|
||||||
|
--location \
|
||||||
|
--silent \
|
||||||
|
--output syft_${SYFT_VERSION}_${OS}_${ARCH}.deb \
|
||||||
|
"https://github.com/anchore/syft/releases/download/v${SYFT_VERSION}/syft_${SYFT_VERSION}_${OS}_${ARCH}.deb"
|
||||||
|
dpkg -i syft_${SYFT_VERSION}_${OS}_${ARCH}.deb
|
||||||
|
rm syft_${SYFT_VERSION}_${OS}_${ARCH}.deb
|
||||||
|
- uses: volker-raschek/cosign-installer@v4.1.2-rc3
|
||||||
|
with:
|
||||||
|
cosign-release: "v3.0.6" # renovate: datasource=github-tags depName=sigstore/cosign
|
||||||
|
- uses: docker/setup-qemu-action@v4.0.0
|
||||||
|
with:
|
||||||
|
image: harbor.cryptic.systems/docker/tonistiigi/binfmt:latest
|
||||||
|
- uses: docker/setup-buildx-action@v4.0.0
|
||||||
|
- uses: actions/setup-go@v6.4.0
|
||||||
with:
|
with:
|
||||||
go-version: stable
|
go-version: stable
|
||||||
- uses: docker/login-action@v3.7.0
|
- uses: docker/login-action@v4.1.0
|
||||||
with:
|
with:
|
||||||
registry: git.cryptic.systems
|
registry: git.cryptic.systems
|
||||||
username: ${{ github.repository_owner }}
|
username: ${{ github.repository_owner }}
|
||||||
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
password: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
- env:
|
- env:
|
||||||
|
COSIGN_PASSPHRASE: ${{ secrets.COSIGN_PASSPHRASE }}
|
||||||
|
COSIGN_PRIVATE_KEY: ${{ secrets.COSIGN_PRIVATE_KEY }}
|
||||||
GITEA_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
GITEA_TOKEN: ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }}
|
||||||
GONOSUMDB: ${{ vars.GONOSUMDB }}
|
GONOSUMDB: ${{ vars.GONOSUMDB }}
|
||||||
GOPROXY: ${{ vars.GOPROXY }}
|
GOPROXY: ${{ vars.GOPROXY }}
|
||||||
uses: goreleaser/goreleaser-action@v7.0.0
|
uses: goreleaser/goreleaser-action@v7.2.1
|
||||||
with:
|
with:
|
||||||
version: v2.14.1 # renovate: datasource=github-releases depName=goreleaser/goreleaser
|
version: v2.15.4 # renovate: datasource=github-releases depName=goreleaser/goreleaser
|
||||||
args: release --clean
|
args: release --clean
|
||||||
|
|
||||||
sync-to-hub-docker-io:
|
sync-to-hub-docker-io:
|
||||||
|
name: "Upload Images to docker.io"
|
||||||
needs:
|
needs:
|
||||||
- release
|
- release
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -47,6 +74,6 @@ jobs:
|
|||||||
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
|
--dest-password ${{ secrets.DOCKER_IO_PASSWORD }} \
|
||||||
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
|
--dest-username ${{ secrets.DOCKER_IO_USERNAME }} \
|
||||||
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
|
--src-password ${{ secrets.GIT_CRYPTIC_SYSTEMS_PACKAGE_REGISTRY_TOKEN }} \
|
||||||
--src-username volker.raschek \
|
--src-username ${{ github.repository_owner }} \
|
||||||
docker://git.cryptic.systems/volker.raschek/db-wait:${TAG} \
|
docker://git.cryptic.systems/volker.raschek/db-wait:${TAG} \
|
||||||
docker://docker.io/volkerraschek/db-wait:${TAG}
|
docker://docker.io/volkerraschek/db-wait:${TAG}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
name: Update Docker Hub Description
|
name: "Update Docker Hub Description"
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -8,8 +8,7 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-description-on-hub-docker-io:
|
update-description-on-hub-docker-io:
|
||||||
runs-on:
|
runs-on: ubuntu-latest
|
||||||
- ubuntu-latest
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6.0.2
|
- uses: actions/checkout@v6.0.2
|
||||||
- uses: peter-evans/dockerhub-description@v5.0.0
|
- uses: peter-evans/dockerhub-description@v5.0.0
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
db-wait
|
db-wait
|
||||||
coverage.txt
|
cosign.*
|
||||||
|
coverage.*
|
||||||
dist
|
dist
|
||||||
419
.goreleaser.yaml
419
.goreleaser.yaml
@@ -1,7 +1,17 @@
|
|||||||
project_name: db-wait
|
project_name: db-wait
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
- formats: [ "tar.xz" ]
|
- id: archives
|
||||||
|
formats:
|
||||||
|
- tar.xz
|
||||||
|
name_template: >-
|
||||||
|
{{ .ProjectName }}-
|
||||||
|
{{- .Version }}-
|
||||||
|
{{- .Os }}-
|
||||||
|
{{- if eq .Arch "amd64" }}amd64
|
||||||
|
{{- else if eq .Arch "amd64_v1" }}amd64
|
||||||
|
{{- else }}{{ .Arch }}{{ end }}
|
||||||
|
{{- if .Arm }}-{{ .Arm }}{{ end }}
|
||||||
files:
|
files:
|
||||||
- README.md
|
- README.md
|
||||||
- LICENSE
|
- LICENSE
|
||||||
@@ -11,15 +21,9 @@ before:
|
|||||||
- go mod tidy
|
- go mod tidy
|
||||||
|
|
||||||
builds:
|
builds:
|
||||||
- main: main.go
|
- id: db-wait
|
||||||
binary: >-
|
main: main.go
|
||||||
{{ .ProjectName }}-
|
binary: db-wait
|
||||||
{{- .Version }}-
|
|
||||||
{{- .Os }}-
|
|
||||||
{{- if eq .Arch "amd64" }}amd64
|
|
||||||
{{- else if eq .Arch "amd64_v1" }}amd64
|
|
||||||
{{- else }}{{ .Arch }}{{ end }}
|
|
||||||
{{- if .Arm }}-{{ .Arm }}{{ end }}
|
|
||||||
env:
|
env:
|
||||||
- CGO_ENABLED=0
|
- CGO_ENABLED=0
|
||||||
- GONOSUMDB={{ .Env.GONOSUMDB }}
|
- GONOSUMDB={{ .Env.GONOSUMDB }}
|
||||||
@@ -32,17 +36,19 @@ builds:
|
|||||||
- arm64
|
- arm64
|
||||||
- riscv64
|
- riscv64
|
||||||
goarm:
|
goarm:
|
||||||
|
- "5"
|
||||||
- "6"
|
- "6"
|
||||||
- "7"
|
- "7"
|
||||||
flags:
|
flags:
|
||||||
- -trimpath
|
- -trimpath
|
||||||
|
- -mod=readonly
|
||||||
|
- -modcacherw
|
||||||
ldflags:
|
ldflags:
|
||||||
- -s -w -X 'main.version={{ trimprefix .Tag "v" }}'
|
- -s -w -X 'main.version={{ .Version }}'
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
filters:
|
filters:
|
||||||
exclude:
|
exclude:
|
||||||
- '^chore'
|
|
||||||
- '^docs'
|
- '^docs'
|
||||||
- '^test'
|
- '^test'
|
||||||
- Merge pull request
|
- Merge pull request
|
||||||
@@ -56,117 +62,304 @@ changelog:
|
|||||||
- title: "Bug fixes"
|
- title: "Bug fixes"
|
||||||
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
|
regexp: '^.*?fix(\([[:word:]]+\))??!?:.+$'
|
||||||
order: 1
|
order: 1
|
||||||
|
- title: Dependencies
|
||||||
|
regexp: '^.*?chore\(deps\):.+$'
|
||||||
|
order: 2
|
||||||
- title: Others
|
- title: Others
|
||||||
order: 999
|
order: 999
|
||||||
sort: asc
|
sort: asc
|
||||||
use: git
|
use: git
|
||||||
|
|
||||||
dockers:
|
dockers_v2:
|
||||||
- build_flag_templates:
|
- # ID of the image, needed if you want to filter by it later on (e.g. on custom publishers).
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
# Default: project name
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
id: container-images
|
||||||
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
|
||||||
- --label=org.opencontainers.image.source={{ .GitURL }}
|
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
|
||||||
- --platform=linux/amd64
|
|
||||||
- --pull
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
goarch: amd64
|
|
||||||
goos: linux
|
|
||||||
image_templates:
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
|
|
||||||
skip_push: false
|
|
||||||
use: buildx
|
|
||||||
|
|
||||||
- build_flag_templates:
|
# Path to the Dockerfile (from the project root).
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
dockerfile: Dockerfile.scratch
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
|
||||||
- --label=org.opencontainers.image.source={{ .GitURL }}
|
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
|
||||||
- --platform=linux/arm/v6
|
|
||||||
- --pull
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
goarch: arm
|
|
||||||
goarm: "6"
|
|
||||||
goos: linux
|
|
||||||
image_templates:
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
|
|
||||||
skip_push: false
|
|
||||||
use: buildx
|
|
||||||
|
|
||||||
- build_flag_templates:
|
# IDs to filter the binaries/packages.
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
#
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
# Make sure to only include the IDs of binaries you want to `COPY` in your
|
||||||
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
# Dockerfile.
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
#
|
||||||
- --label=org.opencontainers.image.source={{ .GitURL }}
|
# If you include IDs that don't exist or are not available for the current
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
# architecture being built, the build of the image will be skipped.
|
||||||
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
ids:
|
||||||
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
- db-wait
|
||||||
- --platform=linux/arm/v7
|
|
||||||
- --pull
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
goarch: arm
|
|
||||||
goarm: "7"
|
|
||||||
goos: linux
|
|
||||||
image_templates:
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
|
|
||||||
skip_push: false
|
|
||||||
use: buildx
|
|
||||||
|
|
||||||
- build_flag_templates:
|
# Annotations to be added to the image.
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
annotations:
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
org.opencontainers.image.authors: "Volker Raschek"
|
||||||
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
org.opencontainers.image.created: "{{ .Date }}"
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
org.opencontainers.image.description: "{{ .ProjectName }}"
|
||||||
- --label=org.opencontainers.image.source={{ .GitURL }}
|
org.opencontainers.image.documentation: "{{ .ProjectName }}"
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
org.opencontainers.image.licenses: "MIT"
|
||||||
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
org.opencontainers.image.revision: "{{ .FullCommit }}"
|
||||||
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
org.opencontainers.image.source: "{{ .GitURL }}"
|
||||||
- --platform=linux/arm64
|
org.opencontainers.image.title: "{{ .ProjectName }}"
|
||||||
- --pull
|
org.opencontainers.image.url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}"
|
||||||
dockerfile: Dockerfile
|
org.opencontainers.image.vendor: "Volker Raschek"
|
||||||
goarch: arm64
|
org.opencontainers.image.version: "{{ .Version }}"
|
||||||
goos: linux
|
|
||||||
image_templates:
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
|
|
||||||
skip_push: false
|
|
||||||
use: buildx
|
|
||||||
|
|
||||||
- build_flag_templates:
|
io.artifacthub.package.alternative-locations: "docker.io/volkerraschek/{{ .ProjectName }}:{{ .Version }}"
|
||||||
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
io.artifacthub.package.keywords: "docker,docker-compose,merge,ci"
|
||||||
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
io.artifacthub.package.logo-url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}/raw/tag/v{{ .Version }}/icons/icon.png"
|
||||||
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
io.artifacthub.package.license: "MIT"
|
||||||
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
io.artifacthub.package.readme-url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}/raw/tag/v{{ .Version }}/README.md"
|
||||||
- --label=org.opencontainers.image.source={{ .GitURL }}
|
|
||||||
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
|
||||||
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
|
||||||
- --platform=linux/riscv64
|
|
||||||
- --pull
|
|
||||||
dockerfile: Dockerfile
|
|
||||||
goarch: riscv64
|
|
||||||
goos: linux
|
|
||||||
image_templates:
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64'
|
|
||||||
skip_push: false
|
|
||||||
use: buildx
|
|
||||||
|
|
||||||
docker_manifests:
|
labels: {}
|
||||||
- name_template: 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}'
|
|
||||||
image_templates:
|
images:
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}'
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
|
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
|
# Platforms to build.
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
|
platforms:
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64'
|
- linux/amd64
|
||||||
|
- linux/arm/v5
|
||||||
|
- linux/arm/v6
|
||||||
|
- linux/arm/v7
|
||||||
|
- linux/arm64
|
||||||
|
- linux/riscv64
|
||||||
|
|
||||||
|
# Whether to create and attach a SBOM to the image.
|
||||||
|
sbom: "{{ not .IsNightly }}"
|
||||||
|
|
||||||
|
# Tag names.
|
||||||
|
#
|
||||||
|
# Empty tags are ignored.
|
||||||
|
tags:
|
||||||
|
- "{{ .Version }}"
|
||||||
|
- "{{ if .IsNightly }}nightly{{ end }}"
|
||||||
|
- "{{ if not .IsNightly }}latest{{ end }}"
|
||||||
|
|
||||||
|
# RPM packages
|
||||||
|
nfpms:
|
||||||
|
- id: nfpms
|
||||||
|
ids:
|
||||||
|
- db-wait
|
||||||
|
package_name: db-wait
|
||||||
|
file_name_template: "{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{- if .Arm }}-{{ .Arm }}{{ end }}"
|
||||||
|
vendor: "Volker Raschek"
|
||||||
|
homepage: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}"
|
||||||
|
maintainer: "Volker Raschek <volker.raschek@cryptic.systems>"
|
||||||
|
description: |-
|
||||||
|
db-wait is a tool to merge docker-compose files from multiple resources.
|
||||||
|
It supports merging local files and remote files via HTTP/HTTPS.
|
||||||
|
license: MIT
|
||||||
|
formats:
|
||||||
|
- deb
|
||||||
|
- rpm
|
||||||
|
dependencies:
|
||||||
|
- git
|
||||||
|
recommends:
|
||||||
|
- docker-compose
|
||||||
|
suggests:
|
||||||
|
- docker
|
||||||
|
bindir: /usr/bin
|
||||||
|
contents:
|
||||||
|
- src: ./README.md
|
||||||
|
dst: "/usr/share/doc/{{ .ProjectName }}/README.md"
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
# License
|
||||||
|
- src: ./LICENSE
|
||||||
|
dst: "/usr/share/doc/{{ .ProjectName }}/LICENSE"
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
- src: ./LICENSE
|
||||||
|
dst: "/usr/share/licenses/{{ .ProjectName }}/LICENSE"
|
||||||
|
file_info:
|
||||||
|
mode: 0644
|
||||||
|
# Create man page directory
|
||||||
|
- dst: /usr/share/man/man1
|
||||||
|
type: dir
|
||||||
|
file_info:
|
||||||
|
mode: 0755
|
||||||
|
rpm:
|
||||||
|
group: Development/Tools
|
||||||
|
summary: Tool to merge docker-compose files from multiple resources
|
||||||
|
compression: xz
|
||||||
|
deb:
|
||||||
|
lintian_overrides:
|
||||||
|
- statically-linked-binary
|
||||||
|
- changelog-file-missing-in-native-package
|
||||||
|
|
||||||
|
sboms:
|
||||||
|
- # ID of the sbom config, must be unique.
|
||||||
|
#
|
||||||
|
# Default: 'default'.
|
||||||
|
id: sboms-cyclonedx
|
||||||
|
|
||||||
|
# IDs of the artifacts to catalog.
|
||||||
|
#
|
||||||
|
# If `artifacts` is "source" or "any" then this fields has no effect.
|
||||||
|
ids:
|
||||||
|
- db-wait
|
||||||
|
|
||||||
|
# Which artifacts to catalog.
|
||||||
|
#
|
||||||
|
# Valid options are:
|
||||||
|
# - any: let the SBOM tool decide which artifacts available in
|
||||||
|
# the cwd should be cataloged
|
||||||
|
# - source: source archive
|
||||||
|
# - package: Linux packages (deb, rpm, apk, etc)
|
||||||
|
# - installer: Windows MSI installers (Pro only)
|
||||||
|
# - diskimage: macOS DMG disk images (Pro only)
|
||||||
|
# - archive: archives from archive pipe
|
||||||
|
# - binary: binaries output from the build stage
|
||||||
|
#
|
||||||
|
# Default: 'archive'.
|
||||||
|
artifacts: binary
|
||||||
|
|
||||||
|
# List of names of the SBOM documents created at this step
|
||||||
|
# (relative to the dist dir).
|
||||||
|
#
|
||||||
|
# Each element configured is made available as variables. For example:
|
||||||
|
# documents: ["foo", "bar"]
|
||||||
|
#
|
||||||
|
# would make the following variables that can be referenced as template keys:
|
||||||
|
# document0: "foo"
|
||||||
|
# document1: "bar"
|
||||||
|
#
|
||||||
|
# Note that multiple sbom values are only allowed if the value of
|
||||||
|
# "artifacts" is "any".
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# When "binary": ["{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}.sbom.json"]
|
||||||
|
# When "any": []
|
||||||
|
# Otherwise: ["{{ .ArtifactName }}.sbom.json"]
|
||||||
|
# Templates: allowed.
|
||||||
|
documents:
|
||||||
|
- "{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{- if .Arm }}-{{ .Arm }}{{ end }}.cdx.json"
|
||||||
|
|
||||||
|
# Path to the SBOM generator command
|
||||||
|
#
|
||||||
|
# Note: the process CWD will be set to the same location as "dist"
|
||||||
|
#
|
||||||
|
# Default: 'syft'.
|
||||||
|
cmd: syft
|
||||||
|
|
||||||
|
# Command line arguments for the command
|
||||||
|
#
|
||||||
|
# Default: ["$artifact", "--output", "spdx-json=$document", "--enrich", "all"].
|
||||||
|
# Templates: allowed.
|
||||||
|
args:
|
||||||
|
- "$artifact"
|
||||||
|
- "--enrich=all"
|
||||||
|
- "--output=cyclonedx-json=$document"
|
||||||
|
|
||||||
|
- # ID of the sbom config, must be unique.
|
||||||
|
#
|
||||||
|
# Default: 'default'.
|
||||||
|
id: sboms-spdx
|
||||||
|
|
||||||
|
# IDs of the artifacts to catalog.
|
||||||
|
#
|
||||||
|
# If `artifacts` is "source" or "any" then this fields has no effect.
|
||||||
|
ids:
|
||||||
|
- db-wait
|
||||||
|
|
||||||
|
# Which artifacts to catalog.
|
||||||
|
#
|
||||||
|
# Valid options are:
|
||||||
|
# - any: let the SBOM tool decide which artifacts available in
|
||||||
|
# the cwd should be cataloged
|
||||||
|
# - source: source archive
|
||||||
|
# - package: Linux packages (deb, rpm, apk, etc)
|
||||||
|
# - installer: Windows MSI installers (Pro only)
|
||||||
|
# - diskimage: macOS DMG disk images (Pro only)
|
||||||
|
# - archive: archives from archive pipe
|
||||||
|
# - binary: binaries output from the build stage
|
||||||
|
#
|
||||||
|
# Default: 'archive'.
|
||||||
|
artifacts: binary
|
||||||
|
|
||||||
|
# List of names of the SBOM documents created at this step
|
||||||
|
# (relative to the dist dir).
|
||||||
|
#
|
||||||
|
# Each element configured is made available as variables. For example:
|
||||||
|
# documents: ["foo", "bar"]
|
||||||
|
#
|
||||||
|
# would make the following variables that can be referenced as template keys:
|
||||||
|
# document0: "foo"
|
||||||
|
# document1: "bar"
|
||||||
|
#
|
||||||
|
# Note that multiple sbom values are only allowed if the value of
|
||||||
|
# "artifacts" is "any".
|
||||||
|
#
|
||||||
|
# Default:
|
||||||
|
# When "binary": ["{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}.sbom.json"]
|
||||||
|
# When "any": []
|
||||||
|
# Otherwise: ["{{ .ArtifactName }}.sbom.json"]
|
||||||
|
# Templates: allowed.
|
||||||
|
documents:
|
||||||
|
- "{{ .Binary }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{- if .Arm }}-{{ .Arm }}{{ end }}.spdx.json"
|
||||||
|
|
||||||
|
# Path to the SBOM generator command
|
||||||
|
#
|
||||||
|
# Note: the process CWD will be set to the same location as "dist"
|
||||||
|
#
|
||||||
|
# Default: 'syft'.
|
||||||
|
cmd: syft
|
||||||
|
|
||||||
|
# Command line arguments for the command
|
||||||
|
#
|
||||||
|
# Default: ["$artifact", "--output", "spdx-json=$document", "--enrich", "all"].
|
||||||
|
# Templates: allowed.
|
||||||
|
args:
|
||||||
|
- "$artifact"
|
||||||
|
- "--enrich=all"
|
||||||
|
- "--output=spdx-json=$document"
|
||||||
|
|
||||||
|
docker_signs:
|
||||||
|
- # ID of the sign config, must be unique.
|
||||||
|
# Only relevant if you want to produce some sort of signature file.
|
||||||
|
#
|
||||||
|
# Default: 'default'.
|
||||||
|
id: container-images
|
||||||
|
|
||||||
|
# Path to the signature command.
|
||||||
|
#
|
||||||
|
# Default: 'cosign'.
|
||||||
|
cmd: cosign
|
||||||
|
|
||||||
|
# Command line arguments for the command.
|
||||||
|
#
|
||||||
|
# Default: ["sign", "--key=cosign.key", "${artifact}@${digest}", "--yes"].
|
||||||
|
# Templates: allowed.
|
||||||
|
# Note: Using --registry-referrers-mode=legacy ensures signature is stored as sha256-<digest>.sig tag
|
||||||
|
# which is required by ArtifactHub to display the "Signed" badge
|
||||||
|
args:
|
||||||
|
- "sign"
|
||||||
|
- "--key=env://COSIGN_PRIVATE_KEY"
|
||||||
|
- "--yes"
|
||||||
|
- "${artifact}@${digest}"
|
||||||
|
|
||||||
|
# Which artifacts to sign.
|
||||||
|
#
|
||||||
|
# all: all artifacts
|
||||||
|
# none: no signing
|
||||||
|
# images: only docker images
|
||||||
|
# manifests: only docker manifests
|
||||||
|
# '': images built by dockers_v2
|
||||||
|
#
|
||||||
|
# Default: ''.
|
||||||
|
artifacts: manifests
|
||||||
|
|
||||||
|
# IDs of the artifacts to sign.
|
||||||
|
ids:
|
||||||
|
- container-images
|
||||||
|
|
||||||
|
# Stdin data to be given to the signature command as stdin.
|
||||||
|
#
|
||||||
|
# Templates: allowed.
|
||||||
|
stdin: "{{ .Env.COSIGN_PASSPHRASE }}"
|
||||||
|
|
||||||
|
# StdinFile file to be given to the signature command as stdin.
|
||||||
|
# stdin_file: ./passphrase.key
|
||||||
|
|
||||||
|
output: true
|
||||||
|
|
||||||
gitea_urls:
|
gitea_urls:
|
||||||
api: https://git.cryptic.systems/api/v1
|
api: https://git.cryptic.systems/api/v1
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
FROM scratch
|
|
||||||
|
|
||||||
COPY db-wait-* /usr/bin/db-wait
|
|
||||||
|
|
||||||
ENTRYPOINT [ "/usr/bin/db-wait" ]
|
|
||||||
4
Dockerfile.scratch
Normal file
4
Dockerfile.scratch
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
FROM scratch AS build
|
||||||
|
ARG TARGETPLATFORM
|
||||||
|
COPY "${TARGETPLATFORM}/db-wait" "/usr/bin/db-wait"
|
||||||
|
ENTRYPOINT [ "/usr/bin/db-wait" ]
|
||||||
4
Makefile
4
Makefile
@@ -49,10 +49,10 @@ test/integration:
|
|||||||
go test -v -p 1 -count=1 -timeout 1200s ./it/...
|
go test -v -p 1 -count=1 -timeout 1200s ./it/...
|
||||||
|
|
||||||
PHONY+=test/coverage
|
PHONY+=test/coverage
|
||||||
test/coverage: test/unit
|
test/coverage:
|
||||||
CGO_ENABLED=0 \
|
CGO_ENABLED=0 \
|
||||||
GOPROXY=$(shell go env GOPROXY) \
|
GOPROXY=$(shell go env GOPROXY) \
|
||||||
go tool cover -html=coverage.txt
|
go tool cover -func=coverage.txt
|
||||||
|
|
||||||
# GOLANGCI-LINT
|
# GOLANGCI-LINT
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|||||||
1
artifacthub-repo.yml
Normal file
1
artifacthub-repo.yml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
repositoryID: dda4c445-18c8-4fe2-991a-f15ebcf93f84
|
||||||
@@ -14,6 +14,7 @@ func Execute(version string) error {
|
|||||||
Short: "Tool to wait until a connection to a database can be established",
|
Short: "Tool to wait until a connection to a database can be established",
|
||||||
Args: cobra.ExactArgs(1),
|
Args: cobra.ExactArgs(1),
|
||||||
RunE: rootRunE,
|
RunE: rootRunE,
|
||||||
|
//#nosec G101
|
||||||
Long: `Wait until a database connection can be established and returns a zero exit code if successfully
|
Long: `Wait until a database connection can be established and returns a zero exit code if successfully
|
||||||
|
|
||||||
# Wait until oracle database is ready to establish connections
|
# Wait until oracle database is ready to establish connections
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module git.cryptic.systems/volker.raschek/db-wait
|
|||||||
go 1.24
|
go 1.24
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/lib/pq v1.11.2
|
github.com/lib/pq v1.12.3
|
||||||
github.com/sijms/go-ora/v2 v2.9.0
|
github.com/sijms/go-ora/v2 v2.9.0
|
||||||
github.com/spf13/cobra v1.10.2
|
github.com/spf13/cobra v1.10.2
|
||||||
)
|
)
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -1,8 +1,8 @@
|
|||||||
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
|
||||||
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
|
||||||
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
|
||||||
github.com/lib/pq v1.11.2 h1:x6gxUeu39V0BHZiugWe8LXZYZ+Utk7hSJGThs8sdzfs=
|
github.com/lib/pq v1.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ=
|
||||||
github.com/lib/pq v1.11.2/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
|
github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
|
||||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/sijms/go-ora/v2 v2.9.0 h1:+iQbUeTeCOFMb5BsOMgUhV8KWyrv9yjKpcK4x7+MFrg=
|
github.com/sijms/go-ora/v2 v2.9.0 h1:+iQbUeTeCOFMb5BsOMgUhV8KWyrv9yjKpcK4x7+MFrg=
|
||||||
github.com/sijms/go-ora/v2 v2.9.0/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU=
|
github.com/sijms/go-ora/v2 v2.9.0/go.mod h1:QgFInVi3ZWyqAiJwzBQA+nbKYKH77tdp1PYoCqhR2dU=
|
||||||
|
|||||||
Reference in New Issue
Block a user