diff --git a/.gitea/CODEOWNERS b/.gitea/CODEOWNERS new file mode 100644 index 0000000..e286c1e --- /dev/null +++ b/.gitea/CODEOWNERS @@ -0,0 +1 @@ +* @luke diff --git a/.gitea/workflows/build_docker.yml b/.gitea/workflows/build_docker.yml new file mode 100644 index 0000000..e7aa3cd --- /dev/null +++ b/.gitea/workflows/build_docker.yml @@ -0,0 +1,18 @@ +name: Build Docker +on: + release: + types: + - published + +jobs: + create_docker: + name: Create Docker Image + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/build-push-docker.yml@main + with: + release: ${{ gitea.event.release.name }} + registry: ${{ vars.PACKAGES_REGISTRY_URL }} + actions_username: ${{ vars.ACTIONS_USERNAME }} + ghcr_username: ${{ vars.GHCR_USERNAME }} + secrets: + ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..bf3e053 --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,22 @@ +name: CI +on: + pull_request: + types: + - opened + - edited + - synchronize + - reopened + +jobs: + validate_pr_title: + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/conventional-commit.yml@main + with: + commit_message: ${{ gitea.event.pull_request.title }} + + ci: + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/ci-docker.yml@main + with: + python-version: 3.13 + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..a656f16 --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,31 @@ +name: Release +on: + workflow_dispatch: + push: + branches: + - master + - main + +jobs: + test: + name: Test + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/ci-docker.yml@main + with: + python-version: 3.13 + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + + create_release: + name: Create Release + needs: test + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release.yml@main + secrets: + ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} + + print_release: + name: Print Release + runs-on: ubuntu-latest + needs: create_release + steps: + - run: echo "Created release ${{ needs.create_release.outputs.release_name }}." diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4adc0b9 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,18 @@ +name: CI +on: + pull_request: + types: [opened, synchronize, reopened] + paths-ignore: + - "README.md" + - "LICENSE.md" + - ".gitignore" + - ".github/CODEOWNERS" + - ".github/renovate.json" + - ".github/dependabot.yml" + +jobs: + ci: + uses: luketainton/gha-workflows/.github/workflows/ci-docker.yml@main + secrets: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} diff --git a/Dockerfile b/Dockerfile index 2598782..c74ef6b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,12 @@ FROM alpine:3.21 AS build LABEL maintainer="Luke Tainton " -LABEL org.opencontainers.image.source="https://github.com/luketainton/docker-dnsmasq" FROM build AS webproc ENV WEBPROCVERSION 0.4.0 ENV WEBPROCURL https://github.com/jpillora/webproc/releases/download/v$WEBPROCVERSION/webproc_"$WEBPROCVERSION"_linux_amd64.gz -RUN apk add --no-cache curl -RUN curl -sL "$WEBPROCURL" | gzip -d - > /usr/local/bin/webproc -RUN chmod +x /usr/local/bin/webproc +RUN apk add --no-cache curl && \ + curl -sL "$WEBPROCURL" | gzip -d - > /usr/local/bin/webproc && \ + chmod +x /usr/local/bin/webproc FROM build AS dnsmasq RUN apk --no-cache add dnsmasq=2.90-r3 diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..9f384c8 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,7 @@ +sonar.organization=luketainton +sonar.projectKey=luketainton_docker-dnsmasq +sonar.projectName=docker-dnsmasq +sonar.projectVersion=1.0 +sonar.docker.hadolint.reportPaths=hadolint.out +sonar.sources=Dockerfile +sonar.exclusions=,.github/**,.gitignore,CODEOWNERS,CHANGELOG.md,LICENSE.md,README.md,renovate.json