You've already forked db-wait
Compare commits
1 Commits
master
...
2524532def
| Author | SHA1 | Date | |
|---|---|---|---|
|
2524532def
|
@@ -1,53 +0,0 @@
|
|||||||
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,9 +21,9 @@ 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.4.0
|
- uses: actions/setup-go@v6.3.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
|
||||||
with:
|
with:
|
||||||
version: v2.12.1 # renovate: datasource=github-releases depName=golangci/golangci-lint
|
version: v2.9.0 # renovate: datasource=github-releases depName=golangci/golangci-lint
|
||||||
|
|||||||
@@ -34,24 +34,9 @@ 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.4.0
|
- uses: actions/setup-go@v6.3.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,52 +13,25 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6.0.2
|
- uses: actions/checkout@v6.0.2
|
||||||
with:
|
|
||||||
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
|
- uses: docker/setup-qemu-action@v4.0.0
|
||||||
with:
|
- uses: actions/setup-go@v6.3.0
|
||||||
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@v4.1.0
|
- uses: docker/login-action@v3.7.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.2.1
|
uses: goreleaser/goreleaser-action@v7.0.0
|
||||||
with:
|
with:
|
||||||
version: v2.15.4 # renovate: datasource=github-releases depName=goreleaser/goreleaser
|
version: v2.14.2 # 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
|
||||||
@@ -74,6 +47,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 ${{ github.repository_owner }} \
|
--src-username volker.raschek \
|
||||||
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,7 +8,8 @@ on:
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
update-description-on-hub-docker-io:
|
update-description-on-hub-docker-io:
|
||||||
runs-on: ubuntu-latest
|
runs-on:
|
||||||
|
- 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,4 +1,3 @@
|
|||||||
db-wait
|
db-wait
|
||||||
cosign.*
|
coverage.txt
|
||||||
coverage.*
|
|
||||||
dist
|
dist
|
||||||
419
.goreleaser.yaml
419
.goreleaser.yaml
@@ -1,17 +1,7 @@
|
|||||||
project_name: db-wait
|
project_name: db-wait
|
||||||
|
|
||||||
archives:
|
archives:
|
||||||
- id: archives
|
- formats: [ "tar.xz" ]
|
||||||
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
|
||||||
@@ -21,9 +11,15 @@ before:
|
|||||||
- go mod tidy
|
- go mod tidy
|
||||||
|
|
||||||
builds:
|
builds:
|
||||||
- id: db-wait
|
- main: main.go
|
||||||
main: main.go
|
binary: >-
|
||||||
binary: db-wait
|
{{ .ProjectName }}-
|
||||||
|
{{- .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 }}
|
||||||
@@ -36,19 +32,17 @@ 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={{ .Version }}'
|
- -s -w -X 'main.version={{ trimprefix .Tag "v" }}'
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
filters:
|
filters:
|
||||||
exclude:
|
exclude:
|
||||||
|
- '^chore'
|
||||||
- '^docs'
|
- '^docs'
|
||||||
- '^test'
|
- '^test'
|
||||||
- Merge pull request
|
- Merge pull request
|
||||||
@@ -62,304 +56,117 @@ 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_v2:
|
dockers:
|
||||||
- # ID of the image, needed if you want to filter by it later on (e.g. on custom publishers).
|
- build_flag_templates:
|
||||||
# Default: project name
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
id: container-images
|
- --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/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
|
||||||
|
|
||||||
# Path to the Dockerfile (from the project root).
|
- build_flag_templates:
|
||||||
dockerfile: Dockerfile.scratch
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
|
- --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
|
||||||
|
|
||||||
# IDs to filter the binaries/packages.
|
- build_flag_templates:
|
||||||
#
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
# Make sure to only include the IDs of binaries you want to `COPY` in your
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
# Dockerfile.
|
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
||||||
#
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
# If you include IDs that don't exist or are not available for the current
|
- --label=org.opencontainers.image.source={{ .GitURL }}
|
||||||
# architecture being built, the build of the image will be skipped.
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
ids:
|
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
||||||
- db-wait
|
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
||||||
|
- --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
|
||||||
|
|
||||||
# Annotations to be added to the image.
|
- build_flag_templates:
|
||||||
annotations:
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
org.opencontainers.image.authors: "Volker Raschek"
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
org.opencontainers.image.created: "{{ .Date }}"
|
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
||||||
org.opencontainers.image.description: "{{ .ProjectName }}"
|
- --label=org.opencontainers.image.revision={{ .FullCommit }}
|
||||||
org.opencontainers.image.documentation: "{{ .ProjectName }}"
|
- --label=org.opencontainers.image.source={{ .GitURL }}
|
||||||
org.opencontainers.image.licenses: "MIT"
|
- --label=org.opencontainers.image.title={{ .ProjectName }}
|
||||||
org.opencontainers.image.revision: "{{ .FullCommit }}"
|
- --label=org.opencontainers.image.url=https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}
|
||||||
org.opencontainers.image.source: "{{ .GitURL }}"
|
- --label=org.opencontainers.image.version={{ trimprefix .Tag "v" }}
|
||||||
org.opencontainers.image.title: "{{ .ProjectName }}"
|
- --platform=linux/arm64
|
||||||
org.opencontainers.image.url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}"
|
- --pull
|
||||||
org.opencontainers.image.vendor: "Volker Raschek"
|
dockerfile: Dockerfile
|
||||||
org.opencontainers.image.version: "{{ .Version }}"
|
goarch: arm64
|
||||||
|
goos: linux
|
||||||
|
image_templates:
|
||||||
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
|
||||||
|
skip_push: false
|
||||||
|
use: buildx
|
||||||
|
|
||||||
io.artifacthub.package.alternative-locations: "docker.io/volkerraschek/{{ .ProjectName }}:{{ .Version }}"
|
- build_flag_templates:
|
||||||
io.artifacthub.package.keywords: "docker,docker-compose,merge,ci"
|
- --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }}
|
||||||
io.artifacthub.package.logo-url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}/raw/tag/v{{ .Version }}/icons/icon.png"
|
- --label=org.opencontainers.image.description={{ .ProjectName }}
|
||||||
io.artifacthub.package.license: "MIT"
|
- --label=org.opencontainers.image.documentation={{ .ProjectName }}
|
||||||
io.artifacthub.package.readme-url: "https://git.cryptic.systems/volker.raschek/{{ .ProjectName }}/raw/tag/v{{ .Version }}/README.md"
|
- --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/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
|
||||||
|
|
||||||
labels: {}
|
docker_manifests:
|
||||||
|
- name_template: 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}'
|
||||||
images:
|
image_templates:
|
||||||
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}'
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-amd64'
|
||||||
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v6'
|
||||||
# Platforms to build.
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm-v7'
|
||||||
platforms:
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-arm64'
|
||||||
- linux/amd64
|
- 'git.cryptic.systems/volker.raschek/{{ .ProjectName }}:{{ trimprefix .Tag "v" }}-riscv64'
|
||||||
- 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
|
||||||
|
|||||||
5
Dockerfile
Normal file
5
Dockerfile
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
FROM scratch
|
||||||
|
|
||||||
|
COPY db-wait-* /usr/bin/db-wait
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/usr/bin/db-wait" ]
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
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/coverage: test/unit
|
||||||
CGO_ENABLED=0 \
|
CGO_ENABLED=0 \
|
||||||
GOPROXY=$(shell go env GOPROXY) \
|
GOPROXY=$(shell go env GOPROXY) \
|
||||||
go tool cover -func=coverage.txt
|
go tool cover -html=coverage.txt
|
||||||
|
|
||||||
# GOLANGCI-LINT
|
# GOLANGCI-LINT
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
# db-wait
|
# db-wait
|
||||||
|
|
||||||
[](https://artifacthub.io/packages/search?repo=db-wait)
|
|
||||||
[](https://hub.docker.com/r/volkerraschek/db-wait)
|
[](https://hub.docker.com/r/volkerraschek/db-wait)
|
||||||
|
|
||||||
With `db-wait` is it possible to wait in CI/CD environments until a database connection can be established and SQL
|
With `db-wait` is it possible to wait in CI/CD environments until a database connection can be established and SQL
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
repositoryID: dda4c445-18c8-4fe2-991a-f15ebcf93f84
|
|
||||||
@@ -14,7 +14,6 @@ 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.12.3
|
github.com/lib/pq v1.11.2
|
||||||
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.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ=
|
github.com/lib/pq v1.11.2 h1:x6gxUeu39V0BHZiugWe8LXZYZ+Utk7hSJGThs8sdzfs=
|
||||||
github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
|
github.com/lib/pq v1.11.2/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=
|
||||||
|
|||||||
BIN
icons/icon.png
BIN
icons/icon.png
Binary file not shown.
|
Before Width: | Height: | Size: 76 KiB |
Reference in New Issue
Block a user