1
0
mirror of https://github.com/cmur2/dyndnsd.git synced 2025-08-08 08:33:56 +02:00

Compare commits

..

34 Commits

Author SHA1 Message Date
cn
94823dc041 release: 3.1.2 2020-12-20 22:05:13 +01:00
depfu[bot]
4c25b9b66b gems: update rubocop to version 1.6.1 2020-12-11 11:47:05 +01:00
cn
fb42c57ff1 ci: drop Travis CI
- end of an era
2020-12-10 11:04:23 +01:00
Christian Nicolai
268e18f2e5 ci: allow manually triggering CI run on GHA 2020-12-04 09:07:09 +01:00
cn
e8e9e0cb71 ci: use GHA ruby/setup-ruby instead of broken actions/setup-ruby
- actions/setup-ruby does not work on new GHA runners Ubuntu 20.04 (missing bundler in 2.5) as per https://github.com/actions/setup-ruby/issues/70
- might be deprecated as per https://github.com/actions/setup-ruby/issues/80
- https://github.com/ruby/setup-ruby is recommended is superior
2020-12-04 09:04:23 +01:00
depfu[bot]
8819d6058a gems: update rubocop to version 1.5.1 2020-12-03 21:25:14 +01:00
cn
dc325d686e ci: use Github Actions in parallel to Travis CI
- this adds a new workflow for Github Actions that mirrors what the existing Travis CI workflow tests
- Travis CI might become unfriendly to opensource soonish so migration might be necessary
2020-11-25 09:39:55 +01:00
depfu[bot]
f0aeea96d4 gems: update rubocop to version 1.4.1 2020-11-24 20:55:22 +01:00
cn
ff136f7b16 ci: add periodic pulling of all Docker image tags to avoid staleness 2020-11-19 11:05:26 +01:00
depfu[bot]
377a6ac179 gems: update rubocop to version 1.3.0 2020-11-13 11:32:34 +01:00
depfu[bot]
2cc45e5c0f gems: update rubocop to version 1.2.0 2020-11-06 10:57:59 +01:00
cn
19683672d1 docs: use travis-ci.com links 2020-10-31 00:04:51 +01:00
cn
4c1fb5783d gem: fix new solargraph warning 2020-10-31 00:04:01 +01:00
cn
d8f5618006 gem: fix new rubocop warnings 2020-10-31 00:04:01 +01:00
cn
e063b6cb4c gems: use solargraph fork until gem metadata allows rubocop 1.0 compat
See https://github.com/castwide/solargraph/issues/380
2020-10-31 00:04:01 +01:00
depfu[bot]
f64bcc0780 gems: update rubocop to version 1.1.0 2020-10-31 00:04:01 +01:00
depfu[bot]
568ea08543 gems: update rubocop to version 1.0.0 2020-10-22 15:55:39 +02:00
depfu[bot]
5c16524788 gems: update rubocop to version 0.93.0 2020-10-10 16:45:54 +02:00
cn
d1c1a98e47 ci: use Github environment files
- fixing vulnerability via https://docs.github.com/en/free-pro-team@latest/actions/reference/workflow-commands-for-github-actions#environment-files
2020-10-08 12:32:44 +02:00
d62bf71820 ci: ignore false-positive 3rd party lockfiles for trivy 2020-10-08 12:29:35 +02:00
cn
156557c6d7 release: 3.1.1 2020-10-03 10:59:52 +02:00
cn
fd1d58abd6 gems: update webrick to version 1.6.1
- explicitly use webrick gem version with patch against CVE-2020-25613
- https://www.ruby-lang.org/en/news/2020/09/29/http-request-smuggling-cve-2020-25613/
- webrick versions bundled with ruby are vulnerable at this point
2020-10-02 00:50:23 +02:00
depfu[bot]
fc4d731434 gems: update rubocop to version 0.92.0 2020-09-26 12:39:42 +02:00
depfu[bot]
8b42a916d0 gems: update rubocop to version 0.91.0 2020-09-16 09:31:58 +02:00
depfu[bot]
e899488fa9 gems: update rubocop to version 0.90.0 2020-09-02 10:34:03 +02:00
6ed0799f49 ci: improve ignore of false-positives on 3rd party lockfiles
- amends 5b332d8f57
2020-08-30 11:41:23 +02:00
5b332d8f57 ci: ignore false-positive 3rd party lockfiles for trivy
- uses newly released `--skip-dirs` flag of Trivy 0.11.0
2020-08-30 11:34:26 +02:00
cn
0de5078d9d ci: add Dockerfile linting 2020-08-22 12:50:55 +02:00
depfu[bot]
72c8dda7dd gems: update jaeger-client to version 1.1.0
Update jaeger-client to version 1.1.0 (#62)

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
2020-08-22 11:27:57 +02:00
cn
e36b210f66 ci: update github actions versions 2020-08-21 16:39:11 +02:00
cn
fcc3f12284 ci: fix vulnscan behavior to scan most-recent semver 2020-08-19 14:33:26 +02:00
cn
bf68049260 release: 3.1.0 2020-08-19 14:13:07 +02:00
cn
35ced6468e ci: allow manual run of vulnscan action workflow 2020-08-18 22:53:33 +02:00
cn
4833328557 docs: improve docker run instructions 2020-08-18 22:40:30 +02:00
13 changed files with 101 additions and 32 deletions

View File

@@ -10,7 +10,7 @@ jobs:
release-dockerimage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2
- name: Extract dyndnsd version from tag name
run: |
echo ::set-env name=DYNDNSD_VERSION::${GITHUB_REF#refs/*/v}

33
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
---
name: ci
on:
push:
branches: [master]
pull_request:
branches: [master]
workflow_dispatch:
schedule:
- cron: '35 4 * * 4' # weekly on thursday morning
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version:
- '2.5'
- '2.6'
- '2.7'
steps:
- uses: actions/checkout@v2
- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Install dependencies
run: |
bundle
- name: Test
run: |
bundle exec rake ci

19
.github/workflows/dockerhub.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
---
name: dockerhub
on:
schedule:
- cron: '7 4 * * 4' # weekly on thursday morning
workflow_dispatch:
jobs:
pull-released-dockerimages:
runs-on: ubuntu-latest
steps:
- name: Avoid stale tags by pulling
run: |
ALL_IMAGES="$(curl -s https://hub.docker.com/v2/repositories/cmur2/dyndnsd/tags?page_size=1000 | jq -r '.results[].name | "cmur2/dyndnsd:" + .' | grep -e 'cmur2/dyndnsd:v')"
for image in $ALL_IMAGES; do
echo "Pulling $image to avoid staleness..."
docker pull "$image"
done

View File

@@ -4,6 +4,7 @@ name: vulnscan
on:
schedule:
- cron: '7 4 * * 4' # weekly on thursday morning
workflow_dispatch:
jobs:
scan-released-dockerimages:
@@ -16,22 +17,25 @@ jobs:
- name: Install Trivy
run: |
mkdir -p $GITHUB_WORKSPACE/bin
echo "::add-path::$GITHUB_WORKSPACE/bin"
echo "$GITHUB_WORKSPACE/bin" >> "$GITHUB_PATH"
curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/master/contrib/install.sh | sh -s -- -b $GITHUB_WORKSPACE/bin
- name: Download Trivy DB
run: |
trivy image --download-db-only
- name: Scan vulnerabilities using Trivy
env:
TRIVY_SKIP_DIRS: 'usr/lib/ruby/gems/2.7.0/gems/jaeger-client-0.10.0/crossdock,usr/lib/ruby/gems/2.7.0/gems/jaeger-client-1.0.0/crossdock,usr/lib/ruby/gems/2.7.0/gems/jaeger-client-1.1.0/crossdock'
run: |
trivy --version
ALL_IMAGES="$(curl -s https://hub.docker.com/v2/repositories/cmur2/dyndnsd/tags?page_size=1000 | jq -r '.results[].name | "cmur2/dyndnsd:" + .' | grep -e 'cmur2/dyndnsd:v' | sort -r)"
# semver sorting as per https://stackoverflow.com/a/40391207/2148786
ALL_IMAGES="$(curl -s https://hub.docker.com/v2/repositories/cmur2/dyndnsd/tags?page_size=1000 | jq -r '.results[].name | "cmur2/dyndnsd:" + .' | grep -e 'cmur2/dyndnsd:v' | sed '/-/!{s/$/_/}' | sort -r -V | sed 's/_$//')"
EXIT_CODE=0
set -e
for major_version in $(seq 1 10); do
for image in $ALL_IMAGES; do
if [[ "$image" = cmur2/dyndnsd:v$major_version.* ]]; then
echo -n "\nScanning newest patch release $image of major v$major_version...\n"
echo -e "\nScanning newest patch release $image of major v$major_version...\n"
if ! trivy image --skip-update --exit-code 1 "$image"; then
EXIT_CODE=1
fi

View File

@@ -1,10 +0,0 @@
---
os: linux
language: ruby
rvm:
- 2.7
- 2.6
- 2.5
script:
- bundle exec rake travis

View File

@@ -1,6 +1,19 @@
# Changelog
## 3.1.0
## 3.1.2 (December 20, 2020)
OTHER:
- fixes vulnerabilities in Docker image by using updated Alpine base image
- start using Github Actions CI for tests and drop Travis CI
## 3.1.1 (October 3, 2020)
IMPROVEMENTS:
- Use webrick gem which contains fixes against [CVE-2020-25613](https://www.ruby-lang.org/en/news/2020/09/29/http-request-smuggling-cve-2020-25613/)
## 3.1.0 (August 19, 2020)
IMPROVEMENTS:

View File

@@ -3,3 +3,5 @@
source 'https://rubygems.org'
gemspec
gem 'solargraph', git: 'https://github.com/zaratan/solargraph.git', branch: 'fix_rubocop_1_0'

View File

@@ -1,6 +1,6 @@
# dyndnsd.rb
[![Build Status](https://travis-ci.org/cmur2/dyndnsd.svg?branch=master)](https://travis-ci.org/cmur2/dyndnsd) [![Dependencies](https://badges.depfu.com/badges/4f25da8493f7a29f652ac892fbf9227b/overview.svg)](https://depfu.com/github/cmur2/dyndnsd)
![ci](https://github.com/cmur2/dyndnsd/workflows/ci/badge.svg) [![Dependencies](https://badges.depfu.com/badges/4f25da8493f7a29f652ac892fbf9227b/overview.svg)](https://depfu.com/github/cmur2/dyndnsd)
A small, lightweight and extensible DynDNS server written with Ruby and Rack.
@@ -81,7 +81,7 @@ The Docker image consumes the same configuration file in YAML format as the gem,
host: "0.0.0.0"
port: 8080
# omit the logfile: option so logging to STDOUT will happen automatically
db: "/var/lib/db.json"
db: "/var/lib/dyndnsd/db.json"
# User's settings for updater and permissions follow here!
```
@@ -94,7 +94,7 @@ Run the Docker image exposing the DynDNS-API on host port 8080 via:
docker run -d --name dyndnsd \
-p 8080:8080 \
-v /host/path/to/dyndnsd/config.yml:/etc/dyndnsd/config.yml \
-v /host/path/to/dyndnsd/db.json:/var/lib/db.json \
-v /host/ptherpath/to/dyndnsd/datadir:/var/lib/dyndnsd \
cmur2/dyndnsd:vX.Y.Z
```

View File

@@ -9,16 +9,23 @@ RSpec::Core::RakeTask.new(:spec)
RuboCop::RakeTask.new
Bundler::Audit::Task.new
desc 'Should be run by developer once to prepare initial solargraph usage (fill caches etc.)'
task :'solargraph:init' do
sh 'solargraph download-core'
end
desc 'Run experimental solargraph type checker'
task :'solargraph:tc' do
task :solargraph do
sh 'solargraph typecheck'
end
task default: [:rubocop, :spec, 'bundle:audit']
namespace :solargraph do
desc 'Should be run by developer once to prepare initial solargraph usage (fill caches etc.)'
task :init do
sh 'solargraph download-core'
end
end
task travis: [:default, :'solargraph:init', :'solargraph:tc']
desc 'Run hadolint for Dockerfile linting'
task :hadolint do
sh 'docker run --rm -i hadolint/hadolint:v1.18.0 hadolint --ignore DL3018 - < docker/Dockerfile'
end
task default: [:rubocop, :spec, 'bundle:audit', :solargraph]
task ci: ['solargraph:init', :default, :hadolint]

View File

@@ -28,17 +28,18 @@ Gem::Specification.new do |s|
s.required_ruby_version = '>= 2.5'
s.add_runtime_dependency 'async-dns', '~> 1.2.0'
s.add_runtime_dependency 'jaeger-client', '~> 1.0.0'
s.add_runtime_dependency 'jaeger-client', '~> 1.1.0'
s.add_runtime_dependency 'metriks'
s.add_runtime_dependency 'opentracing', '~> 0.5.0'
s.add_runtime_dependency 'rack', '~> 2.0'
s.add_runtime_dependency 'rack-tracer', '~> 0.9.0'
s.add_runtime_dependency 'webrick', '>= 1.6.1'
s.add_development_dependency 'bundler'
s.add_development_dependency 'bundler-audit', '~> 0.7.0'
s.add_development_dependency 'rack-test'
s.add_development_dependency 'rake'
s.add_development_dependency 'rspec'
s.add_development_dependency 'rubocop', '~> 0.89.0'
s.add_development_dependency 'solargraph'
s.add_development_dependency 'rubocop', '~> 1.6.1'
# s.add_development_dependency 'solargraph', '~> 0.39.0'
end

View File

@@ -60,7 +60,7 @@ module Dyndnsd
message: e.message,
stack: e.backtrace&.join("\n") || ''
)
raise
raise e
ensure
scope.close
end

View File

@@ -18,7 +18,7 @@ module Dyndnsd
@registry = options[:registry] || Metriks::Registry.default
@interval = options[:interval] || 60
@on_error = options[:on_error] || proc { |ex| }
@on_error = options[:on_error] || proc { |ex| } # default: ignore errors
end
# @return [void]

View File

@@ -1,5 +1,5 @@
# frozen_string_literal: true
module Dyndnsd
VERSION = '3.1.0.rc1'
VERSION = '3.1.2'
end