Compare commits

..

No commits in common. "main" and "v0.7.8-19" have entirely different histories.

5 changed files with 48 additions and 57 deletions

View File

@ -28,12 +28,17 @@ platform:
steps: steps:
- name: dryrun - name: dryrun
image: thegeeklab/drone-docker-buildx:23 image: thegeeklab/drone-docker-buildx:20
settings: settings:
build_args:
- BUILD_VERSION=${DRONE_TAG%-*}
dockerfile: Dockerfile dockerfile: Dockerfile
dry_run: true dry_run: true
provenance: false password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME} repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when: when:
ref: ref:
- refs/pull/** - refs/pull/**
@ -69,12 +74,13 @@ steps:
- changelog-generate - changelog-generate
- name: publish-dockerhub - name: publish-dockerhub
image: thegeeklab/drone-docker-buildx:23 image: thegeeklab/drone-docker-buildx:20
settings: settings:
build_args:
- BUILD_VERSION=${DRONE_TAG%-*}
dockerfile: Dockerfile dockerfile: Dockerfile
password: password:
from_secret: docker_password from_secret: docker_password
provenance: false
repo: thegeeklab/${DRONE_REPO_NAME} repo: thegeeklab/${DRONE_REPO_NAME}
username: username:
from_secret: docker_username from_secret: docker_username
@ -86,12 +92,13 @@ steps:
- changelog-format - changelog-format
- name: publish-quay - name: publish-quay
image: thegeeklab/drone-docker-buildx:23 image: thegeeklab/drone-docker-buildx:20
settings: settings:
build_args:
- BUILD_VERSION=${DRONE_TAG%-*}
dockerfile: Dockerfile dockerfile: Dockerfile
password: password:
from_secret: quay_password from_secret: quay_password
provenance: false
registry: quay.io registry: quay.io
repo: quay.io/thegeeklab/${DRONE_REPO_NAME} repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
username: username:
@ -138,6 +145,7 @@ platform:
steps: steps:
- name: pushrm-dockerhub - name: pushrm-dockerhub
pull: always
image: chko/docker-pushrm:1 image: chko/docker-pushrm:1
environment: environment:
DOCKER_PASS: DOCKER_PASS:
@ -145,13 +153,14 @@ steps:
DOCKER_USER: DOCKER_USER:
from_secret: docker_username from_secret: docker_username
PUSHRM_FILE: README.md PUSHRM_FILE: README.md
PUSHRM_SHORT: Custom image for muffet PUSHRM_SHORT: Custom image for broken-link-checker
PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME} PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME}
when: when:
status: status:
- success - success
- name: pushrm-quay - name: pushrm-quay
pull: always
image: chko/docker-pushrm:1 image: chko/docker-pushrm:1
environment: environment:
APIKEY__QUAY_IO: APIKEY__QUAY_IO:
@ -171,7 +180,7 @@ steps:
from_secret: matrix_password from_secret: matrix_password
roomid: roomid:
from_secret: matrix_roomid from_secret: matrix_roomid
template: "Status: **{{ .Build.Status }}**<br/> Build: [{{ .Repo.Owner }}/{{ .Repo.Name }}]({{ .Build.Link }}){{ if .Build.Branch }} ({{ .Build.Branch }}){{ end }} by {{ .Commit.Author }}<br/> Message: {{ .Commit.Message.Title }}" template: "Status: **{{ build.Status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}<br/> Message: {{ commit.Message.Title }}"
username: username:
from_secret: matrix_username from_secret: matrix_username
when: when:
@ -192,6 +201,6 @@ depends_on:
--- ---
kind: signature kind: signature
hmac: 78e01e7829a4953f6068e8c71f068cc449d5a41d6ea26adc7ad456d19b0ed40f hmac: 146d9e41ffdf9ebeae30b044503608af4a872f420cf7f799e70d4ab3a50f4f77
... ...

1
.gitignore vendored
View File

@ -1,2 +1 @@
CHANGELOG.md CHANGELOG.md
/src

View File

@ -1,4 +1,4 @@
FROM debian:bullseye-slim@sha256:9bec46ecd98ce4bf8305840b021dda9b3e1f8494a0768c407e2b233180fa1466 FROM node:lts-alpine3.15@sha256:28bed508446db2ee028d08e76fb47b935defa26a84986ca050d2596ea67fd506
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>" LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>" LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"
@ -7,40 +7,35 @@ LABEL org.opencontainers.image.url="https://gitea.rknet.org/docker/link-validato
LABEL org.opencontainers.image.source="https://gitea.rknet.org/docker/link-validator" LABEL org.opencontainers.image.source="https://gitea.rknet.org/docker/link-validator"
LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/docker/link-validator" LABEL org.opencontainers.image.documentation="https://gitea.rknet.org/docker/link-validator"
ARG CADDY_VERSION ARG BUILD_VERSION
ARG WAIT_FOR_VERSION # renovate: datasource=npm depName=broken-link-checker
ARG CONTAINER_LIBRARY ENV BLC_VERSION="${BUILD_VERSION:-0.7.8}"
# renovate: datasource=github-releases depName=caddyserver/caddy # renovate: datasource=github-releases depName=caddyserver/caddy
ENV CADDY_VERSION="${CADDY_VERSION:-v2.7.4}" ENV CADDY_VERSION="${CADDY_VERSION:-v2.4.6}"
# renovate: datasource=github-releases depName=thegeeklab/wait-for
ENV WAIT_FOR_VERSION="${WAIT_FOR_VERSION:-v0.4.2}"
# renovate: datasource=github-releases depName=thegeeklab/retry
ENV RETRY_VERSION="${RETRY_VERSION:-v0.4.0}"
# renovate: datasource=github-releases depName=raviqqe/muffet
ENV MUFFET_VERSION="${MUFFET_VERSION:-v2.9.2}"
# renovate: datasource=git-tags depName=https://gitea.rknet.org/docker/container-library
ENV CONTAINER_LIBRARY="${CONTAINER_LIBRARY:-v0.1.3}"
ENV LINK_VALIDATOR_BASE_DIR=/drone/src \ ENV LINK_VALIDATOR_BASE_DIR=/drone/src \
LINK_VALIDATOR_SERVER_PORT=8000 \ LINK_VALIDATOR_SERVER_PORT=80 \
LINK_VALIDATOR_RETRIES=0 FORCE_COLOR=true \
NPM_CONFIG_LOGLEVEL=error
COPY overlay/ / COPY overlay/ /
RUN apt-get update && apt-get install -y curl bash ncat media-types && \ RUN echo "Installing requirements ..." && \
curl -SsfL "https://gitea.rknet.org/docker/container-library/releases/download/${CONTAINER_LIBRARY}/container-library.tar.gz" | tar xz -C / && \ apk --update add --virtual .build-deps curl && \
curl -sSL "https://github.com/caddyserver/caddy/releases/download/${CADDY_VERSION}/caddy_${CADDY_VERSION##v}_linux_amd64.tar.gz" | tar xz -C /usr/local/bin caddy && \ curl -sSL "https://github.com/caddyserver/caddy/releases/download/${CADDY_VERSION}/caddy_${CADDY_VERSION##v}_linux_amd64.tar.gz" | tar xz -C /usr/local/bin caddy && \
curl -SsfL "https://github.com/raviqqe/muffet/releases/download/${MUFFET_VERSION}/muffet_linux_amd64.tar.gz" | tar xz -C /usr/local/bin muffet && \
curl -SsfL -o /usr/local/bin/wait-for "https://github.com/thegeeklab/wait-for/releases/download/${WAIT_FOR_VERSION}/wait-for" && \
curl -SsfL -o /usr/local/bin/retry "https://github.com/thegeeklab/retry/releases/download/${RETRY_VERSION}/retry" && \
chmod 755 /usr/local/bin/caddy && \ chmod 755 /usr/local/bin/caddy && \
chmod 755 /usr/local/bin/muffet && \ BLC_VERSION="${BLC_VERSION##v}" && \
chmod 755 /usr/local/bin/wait-for && \ BLC_MAJOR="${BLC_VERSION%%.*}" && \
chmod 755 /usr/local/bin/retry && \ if [ -z "${BLC_MAJOR//[0-9]}" ] && [ -n "$BLC_MAJOR" ]; then \
rm -rf /var/lib/apt/lists/* && \ echo "Installing link-checker version '$BLC_VERSION' ..." && \
rm -rf /tmp/* && \ npm install -g broken-link-checker@"$BLC_VERSION"; \
rm -rf /root/.cache/ else \
echo "Installing latest link-checker ..." && \
npm install -g broken-link-checker; \
fi && \
apk del .build-deps && \
rm -rf /var/cache/apk/* && \
rm -rf /tmp/*
USER root USER root
CMD [] CMD []

View File

@ -1,6 +1,6 @@
# link-validator # link-validator
Custom image for muffet Custom image for broken-link-checker
[![Build Status](https://img.shields.io/drone/build/docker/link-validator?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/docker/link-validator) [![Build Status](https://img.shields.io/drone/build/docker/link-validator?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/docker/link-validator)
[![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/link-validator) [![Docker Hub](https://img.shields.io/badge/dockerhub-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/link-validator)
@ -8,16 +8,16 @@ Custom image for muffet
[![Source: Gitea](https://img.shields.io/badge/source-gitea-blue.svg?logo=gitea&logoColor=white)](https://gitea.rknet.org/docker/link-validator) [![Source: Gitea](https://img.shields.io/badge/source-gitea-blue.svg?logo=gitea&logoColor=white)](https://gitea.rknet.org/docker/link-validator)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitea.rknet.org/docker/link-validator/src/branch/main/LICENSE) [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitea.rknet.org/docker/link-validator/src/branch/main/LICENSE)
Custom wrapper Docker image for [muffet](https://github.com/raviqqe/muffet) optimized for CI. Custom wrapper Docker image for [broken-link-checker](https://github.com/stevenvachon/broken-link-checker) optimized for CI.
## Usage ## Usage
```Shell ```Shell
docker run -v $(pwd)/public:/drone/src link-validator docker run -v $(pwd)/public:/drone/src link-validator
# Pass arguments to muffet # or pass arguments to broken-link-checker
# ... but DO NOT set the server url! This is done automatically. # ... but DO NOT set the server url! This will be done automatically. See environment variables.
docker run -v $(pwd)/public:/drone/src link-validator -e docker run -v $(pwd)/public:/drone/src link-validator -ro
``` ```
## Environment variables ## Environment variables
@ -25,7 +25,6 @@ docker run -v $(pwd)/public:/drone/src link-validator -e
```Shell ```Shell
LINK_VALIDATOR_BASE_DIR=/drone/src LINK_VALIDATOR_BASE_DIR=/drone/src
LINK_VALIDATOR_SERVER_PORT=8000 LINK_VALIDATOR_SERVER_PORT=8000
LINK_VALIDATOR_RETRIES=0
``` ```
## Build ## Build

View File

@ -1,16 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env sh
set -eo pipefail set -eo pipefail
# shellcheck disable=SC1091 caddy file-server --root "$LINK_VALIDATOR_BASE_DIR" --listen "127.0.0.1:$LINK_VALIDATOR_SERVER_PORT" &> /dev/null &
. /usr/local/lib/log.sh exec /usr/local/bin/broken-link-checker "$@" http://localhost:"$LINK_VALIDATOR_SERVER_PORT"
URL="127.0.0.1:$LINK_VALIDATOR_SERVER_PORT"
caddy file-server --root "$LINK_VALIDATOR_BASE_DIR" --listen "$URL" &
log_info "Wait for web server on '$URL'"
/usr/local/bin/wait-for "$URL"
log_info "Start link validation"
exec retry -t "$LINK_VALIDATOR_RETRIES" -m 5 -- "/usr/local/bin/muffet $* http://$URL"