diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..b360013 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,14 @@ +kind: pipeline +name: deploy +steps: +- name: docker + image: plugins/docker + settings: + username: + from_secret: DOCKER_USERNAME + password: + from_secret: DOCKER_PASSWORD + repo: aaronriedel/ansible-lint + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} \ No newline at end of file diff --git a/.woodpecker/dry-run.yaml b/.woodpecker/dry-run.yaml deleted file mode 100644 index b03e70e..0000000 --- a/.woodpecker/dry-run.yaml +++ /dev/null @@ -1,20 +0,0 @@ -steps: -- name: docker-build - image: woodpeckerci/plugin-docker-buildx - privileged: true - settings: - registry: git.ar21.de - username: - from_secret: REGISTRY_USER - password: - from_secret: REGISTRY_PASS - repo: git.ar21.de/aaron/ansible-lint - tags: latest - platforms: - - linux/arm64 - - linux/amd64 - dry_run: true -when: - - branch: - exclude: main - event: [push, manual] diff --git a/.woodpecker/root.yaml b/.woodpecker/root.yaml deleted file mode 100644 index 84ef7c8..0000000 --- a/.woodpecker/root.yaml +++ /dev/null @@ -1,21 +0,0 @@ -steps: -- name: docker-root - image: woodpeckerci/plugin-docker-buildx - privileged: true - settings: - dockerfile: Dockerfile-root - registry: git.ar21.de - username: - from_secret: REGISTRY_USER - password: - from_secret: REGISTRY_PASS - repo: git.ar21.de/aaron/ansible-lint - tags: - - root - - root-${CI_PIPELINE_NUMBER} - platforms: - - linux/arm64 - - linux/amd64 -when: - - branch: main - event: [push, manual] diff --git a/.woodpecker/rootless.yaml b/.woodpecker/rootless.yaml deleted file mode 100644 index a62b147..0000000 --- a/.woodpecker/rootless.yaml +++ /dev/null @@ -1,20 +0,0 @@ -steps: -- name: docker - image: woodpeckerci/plugin-docker-buildx - privileged: true - settings: - registry: git.ar21.de - username: - from_secret: REGISTRY_USER - password: - from_secret: REGISTRY_PASS - repo: git.ar21.de/aaron/ansible-lint - tags: - - latest - - ${CI_PIPELINE_NUMBER} - platforms: - - linux/arm64 - - linux/amd64 -when: - - branch: main - event: [push, manual] diff --git a/Dockerfile b/Dockerfile index 84c073e..cc7014d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,13 @@ -FROM python:3.13.5-slim-bookworm -RUN apt-get update -qq && apt-get install -qq git --no-install-recommends && rm -rf /var/lib/apt/lists/* +FROM amd64/python:3.11.2-alpine3.16 +RUN apk add --no-cache git WORKDIR ./ ARG PUID=1000 -ENV GROUP=dockergroup -ENV USER=docker -ENV HOMEDIR="/home/${USER}" -ENV PATH=${HOMEDIR}/.local/bin:$PATH -ENV PLUGIN_PROFILE=production -RUN useradd -u "${PUID}" -m "${USER}" +ENV GROUP dockergroup +ENV USER docker +ENV HOMEDIR "/home/${USER}" +ENV PATH ${HOMEDIR}/.local/bin:$PATH +ENV PLUGIN_PROFILE production +RUN addgroup -S "${GROUP}" && adduser -S "${USER}" -G "${GROUP}" COPY script.sh /bin/ RUN chmod +x /bin/script.sh USER ${USER} @@ -15,7 +15,8 @@ WORKDIR ${HOMEDIR} COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt RUN rm requirements.txt -RUN echo "DUMMY" > /tmp/dummy-vault -ENV ANSIBLE_VAULT_PASSWORD_FILE=/tmp/dummy-vault +RUN git config --global --add safe.directory /drone/src +COPY card.json . +COPY card.data.json . -ENTRYPOINT [ "script.sh" ] +ENTRYPOINT [ "script.sh" ] \ No newline at end of file diff --git a/Dockerfile-root b/Dockerfile-root deleted file mode 100644 index eb23e5d..0000000 --- a/Dockerfile-root +++ /dev/null @@ -1,21 +0,0 @@ -FROM python:3.13.5-slim-bookworm -RUN apt-get update -qq && apt-get install -qq git --no-install-recommends && rm -rf /var/lib/apt/lists/* -WORKDIR ./ -# ARG PUID=1000 -# ENV GROUP=dockergroup -# ENV USER=docker -# ENV HOMEDIR="/home/${USER}" -# ENV PATH=${HOMEDIR}/.local/bin:$PATH -ENV PLUGIN_PROFILE=production -# RUN useradd -u "${PUID}" -m "${USER}" -COPY script.sh /bin/ -RUN chmod +x /bin/script.sh -# USER ${USER} -# WORKDIR ${HOMEDIR} -COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt -RUN rm requirements.txt -RUN echo "DUMMY" > /tmp/dummy-vault -ENV ANSIBLE_VAULT_PASSWORD_FILE=/tmp/dummy-vault - -ENTRYPOINT [ "script.sh" ] diff --git a/README.md b/README.md index e50f901..3696ebb 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -[![status-badge](https://woodpecker.ar21.de/api/badges/12/status.svg)](https://woodpecker.ar21.de/repos/12) \ No newline at end of file +[![Build Status](https://drone.ar21.de/api/badges/aaron/ansible-lint/status.svg)](https://drone.ar21.de/aaron/ansible-lint) \ No newline at end of file diff --git a/card.data.json b/card.data.json new file mode 100644 index 0000000..f51061d --- /dev/null +++ b/card.data.json @@ -0,0 +1,9 @@ +{ + "Issues": { + "critical": 3, + "high": 2, + "medium": 0, + "low": 43 + }, + "path": "test/test" +} \ No newline at end of file diff --git a/card.json b/card.json new file mode 100644 index 0000000..1b1ef5b --- /dev/null +++ b/card.json @@ -0,0 +1,146 @@ +{ + "type": "AdaptiveCard", + "body": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "Image", + "url": "https://raw.githubusercontent.com/ansible/logos/main/vscode-ansible.png", + "size": "Small" + } + ], + "width": "auto" + }, + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "text": "ansible-lint", + "wrap": true, + "size": "Small", + "weight": "Bolder", + "isSubtle": false, + "spacing": "Small" + }, + { + "type": "TextBlock", + "text": "Repo: ${$root.path}", + "wrap": true, + "size": "Small", + "weight": "Lighter", + "isSubtle": true, + "spacing": "Small" + } + ], + "width": "stretch" + } + ], + "style": "default" + }, + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "separator": true, + "width": "auto", + "items": [ + { + "type": "TextBlock", + "size": "Large", + "$data": "${$root.Issues.critical}", + "text": "${formatNumber($root.Issues.critical, 0)}", + "wrap": true, + "horizontalAlignment": "Center", + "spacing": "None", + "color": "Attention" + }, + { + "type": "TextBlock", + "size": "Small", + "text": "Critical Severity" + } + ] + }, + { + "type": "Column", + "width": "auto", + "separator": true, + "spacing": "Medium", + "items": [ + { + "type": "TextBlock", + "size": "Large", + "$data": "${$root.Issues.high}", + "text": "${formatNumber($root.Issues.high, 0)}", + "wrap": true, + "horizontalAlignment": "Center", + "spacing": "None", + "color": "Warning" + }, + { + "type": "TextBlock", + "size": "Small", + "text": "High Severity" + } + ] + }, + { + "type": "Column", + "width": "auto", + "separator": true, + "spacing": "Medium", + "items": [ + { + "type": "TextBlock", + "size": "Large", + "$data": "${$root.Issues.medium}", + "text": "${formatNumber($root.Issues.medium, 0)}", + "wrap": true, + "horizontalAlignment": "Center", + "spacing": "None", + "color": "Accent" + }, + { + "type": "TextBlock", + "size": "Small", + "text": "Medium Severity" + } + ] + }, + { + "type": "Column", + "width": "auto", + "separator": true, + "spacing": "Medium", + "items": [ + { + "type": "TextBlock", + "size": "Large", + "$data": "${$root.Issues.low}", + "text": "${formatNumber($root.Issues.low, 0)}", + "wrap": true, + "horizontalAlignment": "Center", + "spacing": "None", + "color": "Good" + }, + { + "type": "TextBlock", + "size": "Small", + "text": "Low Severity" + } + ] + } + ], + "style": "default", + "separator": true + } + ], + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5" +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 342e0c9..76f1892 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,2 @@ -ansible==11.7.0 -ansible-lint==25.6.1 -jmespath==1.0.1 +ansible==7.3.0 +ansible-lint==6.12.2 diff --git a/script.sh b/script.sh index 14a8292..8a5e999 100644 --- a/script.sh +++ b/script.sh @@ -2,4 +2,9 @@ echo "Starting ansible linter by Aaron Riedel" echo "" -ansible-lint --profile $PLUGIN_PROFILE \ No newline at end of file +cd /drone/src +ansible-lint --profile $PLUGIN_PROFILE +echo "" +cat ~/card.json +echo "" +cat ~/card.data.json \ No newline at end of file