From e5f0294ead2987649ec10fc5e806568a3214a1fe Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 10:50:07 +0900 Subject: [PATCH 1/6] Add fedora44-arm to hosts.yml Co-Authored-By: Claude Fable 5 --- hosts.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hosts.yml b/hosts.yml index 9b78061..4354a51 100644 --- a/hosts.yml +++ b/hosts.yml @@ -186,3 +186,10 @@ freebsd15-arm.rubyci.org: compress: false run_list: - recipes/default.rb + +fedora44-arm.rubyci.org: + properties: + nopasswd_sudo: true + compress: false + run_list: + - recipes/default.rb From e0502fc6f016ef80ad95acf4bc388beba164d7c9 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 10:51:02 +0900 Subject: [PATCH 2/6] Removed terminated hosts Co-Authored-By: Claude Fable 5 --- hosts.yml | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/hosts.yml b/hosts.yml index 4354a51..b7da450 100644 --- a/hosts.yml +++ b/hosts.yml @@ -82,13 +82,6 @@ s390x.rubyci.org: # z15 run_list: - recipes/default.rb -freebsd13.rubyci.org: - properties: - nopasswd_sudo: true - compress: false - run_list: - - recipes/default.rb - gem-codesearch.dev.ruby-lang.org: properties: nopasswd_sudo: true @@ -145,13 +138,6 @@ freebsd14.rubyci.org: run_list: - recipes/default.rb -fedora42-arm.rubyci.org: - properties: - nopasswd_sudo: true - compress: false - run_list: - - recipes/default.rb - ubuntu-arm.rubyci.org: properties: nopasswd_sudo: true From 775aef24db80dcf864449ff16cc34647c31d97c2 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 11:01:20 +0900 Subject: [PATCH 3/6] Manage Cloudflare DNS for rubyci.org with DNSControl Exported the current zone as-is with dnscontrol get-zones. The API token is referenced via CLOUDFLARE_API_TOKEN environment variable. Co-Authored-By: Claude Fable 5 --- dns/creds.json | 6 ++++++ dns/dnsconfig.js | 44 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 dns/creds.json create mode 100644 dns/dnsconfig.js diff --git a/dns/creds.json b/dns/creds.json new file mode 100644 index 0000000..7d36fbf --- /dev/null +++ b/dns/creds.json @@ -0,0 +1,6 @@ +{ + "cloudflare": { + "TYPE": "CLOUDFLAREAPI", + "apitoken": "$CLOUDFLARE_API_TOKEN" + } +} diff --git a/dns/dnsconfig.js b/dns/dnsconfig.js new file mode 100644 index 0000000..bf219b8 --- /dev/null +++ b/dns/dnsconfig.js @@ -0,0 +1,44 @@ +// generated by get-zones. This is 'a decent first draft' and requires editing. + +var DSP_CLOUDFLARE = NewDnsProvider("cloudflare", "CLOUDFLAREAPI"); +var REG_CHANGEME = NewRegistrar("none"); + +D("rubyci.org", REG_CHANGEME, + DnsProvider(DSP_CLOUDFLARE), + DefaultTTL(1), + A("amazon2023", "35.72.97.116"), + A("amazon2", "54.250.87.137"), + A("arch", "35.72.171.27"), + A("arm64-neoverse-n1", "145.40.77.87"), + A("centos7", "54.249.203.108"), + A("crossruby", "54.65.185.15"), + A("debian11", "54.178.164.239"), + A("debian12", "18.177.243.215"), + A("debian13", "35.72.238.43"), + A("debian", "35.73.95.28"), + A("fedora42-arm", "54.249.203.108"), + A("fedora43", "54.249.168.246"), + A("freebsd13", "18.176.170.223"), + A("freebsd14", "35.73.133.12"), + A("freebsd15-arm", "52.196.12.20"), + A("icc", "18.180.104.156"), + A("openbsd", "52.197.61.51"), + A("opensuseleap", "3.113.91.40"), + A("ppc64le", "140.211.168.162"), + A("rhel10", "35.76.91.191"), + A("rhel8", "35.73.137.17"), + A("rhel9", "18.177.224.191"), + A("riscv", "18.181.4.174"), + A("s390x", "148.100.84.245"), + A("solaris", "133.162.73.61"), + A("ubuntu2004-arm", "54.249.168.246"), + A("ubuntu2004", "52.196.12.20"), + A("ubuntu2204", "54.248.215.194"), + A("ubuntu2404", "18.180.242.9"), + A("ubuntu-arm", "18.178.229.119"), + A("ubuntu", "35.72.236.42"), + // Cloudflare flattens this apex CNAME; dnscontrol expresses it as ALIAS. + ALIAS("@", "rubyci.org.herokudns.com."), + CNAME("www", "www.rubyci.org.herokudns.com."), +); + From 465d5d221cb5ffa12ab69cff47635f779f405db4 Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 11:07:10 +0900 Subject: [PATCH 4/6] Add fedora44-arm and remove stale DNS records Removed records for terminated or long-gone hosts. Most of them pointed at reused Elastic IPs now held by other hosts. Co-Authored-By: Claude Fable 5 --- dns/dnsconfig.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/dns/dnsconfig.js b/dns/dnsconfig.js index bf219b8..9aec20b 100644 --- a/dns/dnsconfig.js +++ b/dns/dnsconfig.js @@ -7,18 +7,15 @@ D("rubyci.org", REG_CHANGEME, DnsProvider(DSP_CLOUDFLARE), DefaultTTL(1), A("amazon2023", "35.72.97.116"), - A("amazon2", "54.250.87.137"), A("arch", "35.72.171.27"), A("arm64-neoverse-n1", "145.40.77.87"), - A("centos7", "54.249.203.108"), A("crossruby", "54.65.185.15"), A("debian11", "54.178.164.239"), A("debian12", "18.177.243.215"), A("debian13", "35.72.238.43"), A("debian", "35.73.95.28"), - A("fedora42-arm", "54.249.203.108"), + A("fedora44-arm", "18.176.170.223"), A("fedora43", "54.249.168.246"), - A("freebsd13", "18.176.170.223"), A("freebsd14", "35.73.133.12"), A("freebsd15-arm", "52.196.12.20"), A("icc", "18.180.104.156"), @@ -30,9 +27,6 @@ D("rubyci.org", REG_CHANGEME, A("rhel9", "18.177.224.191"), A("riscv", "18.181.4.174"), A("s390x", "148.100.84.245"), - A("solaris", "133.162.73.61"), - A("ubuntu2004-arm", "54.249.168.246"), - A("ubuntu2004", "52.196.12.20"), A("ubuntu2204", "54.248.215.194"), A("ubuntu2404", "18.180.242.9"), A("ubuntu-arm", "18.178.229.119"), From 8232427357c443486a285af47687e59da468392f Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 11:08:03 +0900 Subject: [PATCH 5/6] Remove arm64-neoverse-n1 DNS record Co-Authored-By: Claude Fable 5 --- dns/dnsconfig.js | 1 - 1 file changed, 1 deletion(-) diff --git a/dns/dnsconfig.js b/dns/dnsconfig.js index 9aec20b..583c8ba 100644 --- a/dns/dnsconfig.js +++ b/dns/dnsconfig.js @@ -8,7 +8,6 @@ D("rubyci.org", REG_CHANGEME, DefaultTTL(1), A("amazon2023", "35.72.97.116"), A("arch", "35.72.171.27"), - A("arm64-neoverse-n1", "145.40.77.87"), A("crossruby", "54.65.185.15"), A("debian11", "54.178.164.239"), A("debian12", "18.177.243.215"), From 453a902e452358b9aa5ab80a502cf7b02da89dae Mon Sep 17 00:00:00 2001 From: Hiroshi SHIBATA Date: Fri, 24 Jul 2026 11:10:32 +0900 Subject: [PATCH 6/6] Automate DNS preview and push with GitHub Actions Pull requests touching dns/ run dnscontrol preview, and merges to master run dnscontrol push. Fork PRs are skipped because secrets are unavailable there. Co-Authored-By: Claude Fable 5 --- .github/workflows/dns.yml | 44 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/dns.yml diff --git a/.github/workflows/dns.yml b/.github/workflows/dns.yml new file mode 100644 index 0000000..4576296 --- /dev/null +++ b/.github/workflows/dns.yml @@ -0,0 +1,44 @@ +name: dns + +on: + pull_request: + paths: + - "dns/**" + - ".github/workflows/dns.yml" + push: + branches: + - master + paths: + - "dns/**" + - ".github/workflows/dns.yml" + +permissions: + contents: read + +env: + DNSCONTROL_VERSION: 4.44.1 + +jobs: + dns: + # Secrets are unavailable to fork PRs, so run only for same-repo events + if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository + runs-on: ubuntu-latest + defaults: + run: + working-directory: dns + steps: + - uses: actions/checkout@v5 + - name: Install dnscontrol + run: | + curl -fsSL "https://github.com/StackExchange/dnscontrol/releases/download/v${DNSCONTROL_VERSION}/dnscontrol_${DNSCONTROL_VERSION}_linux_amd64.tar.gz" | tar xz dnscontrol + sudo mv dnscontrol /usr/local/bin/dnscontrol + - name: Preview + if: github.event_name == 'pull_request' + run: dnscontrol preview --creds creds.json + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + - name: Push + if: github.event_name == 'push' + run: dnscontrol push --creds creds.json + env: + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}