Skip to content

Commit

Permalink
github actions to build and release
Browse files Browse the repository at this point in the history
  • Loading branch information
anewton1998 committed Nov 14, 2024
1 parent 82a1ba6 commit 31642b8
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 42 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Maven CI/CD

on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build_and_test:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Build project with Maven
run: mvn -B package --file pom.xml
32 changes: 32 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Maven CI/CD

on:
push:
branches: [master]
tags:
- 'v*.*.*'

jobs:
release-build:
name: Release Build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')

steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: 11

- name: Build project with Maven
run: mvn -B package --file pom.xml

- name: Publish
uses: softprops/action-gh-release@v1
with:
files: |
tool/target/rdapct-*.jar
tool/target/bin/rdapct_config.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61 changes: 19 additions & 42 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,55 +5,20 @@ the specifications developed by the IETF (RFC7481, RFC7482, RFC7483, RFC7484) an
profile (https://www.icann.org/gtld-rdap-profile). It only tests RDAP servers related to domains.
Apart from generic RDAP tests, there are no specific tests for IP addresses and AS Numbers RDAP servers.

# Installing and Using

Instructions for installing and using this software can be found [here](https://github.com/icann/rdap-conformance-tool/wiki).
This wiki also includes explanations for some of the common conformance issues.

# General Structure

This tool implements more than 300 tests, as detailed in the doc directory.

The tool is divided into two modules with their respective documentation:

- [Command line module (tool)](./tool/README.md) the main entry point
- [Validator module](./validator/README.md) the rdap validation library

# Using with Docker

This repository contains a Dockerfile which builds an image containing the tool.

To build it, run this command:

docker buildx build -t [image_name] .

Replace `[image_name]` with a unique memorable name such as `rdapct`. Once the
image has been built, you can run the tool using

docker run rdapct ARGS

When run via Docker, a minimal configuration file is used, and the results are
printed to `STDOUT`.

Datasets are added to the image at build time and are not refreshed, so the image
should be rebuilt in order to ensure they are up-to-date.

# Normal usage

There is no installation needed. The compliled executable jar file and configuration file are available for download at [tool/bin/](./tool/bin/) that can be executed with java. Alternatively, the executable JAVA11 jar file can be created by building the tool (see below). e.g.:

java -jar rdapct-1.0.jar -c ./rdapct-config.json https://rdap.registry.com/domain/example.com

where rdapct-config.json is the configuration file.

The tool do the query specified on the command line, parses the response and test the response. It also do other queries
to the server such as the /help query.

The result code shows the primary issue, if any, of all issues found. The details of the tests are found in the /results
directory, and the datasets retrieved from the relevant IANA registries are found in the /datasets directory.

Queries such as domain, nameserver, entity are supported. Basic search (RFC 7482) is also supported.

# Finding the RDAP server

To find the RDAP server for a domain, look at the IANA Bootstrap Service Registry for Domain Name Space
(https://www.iana.org/assignments/rdap-dns/rdap-dns.xhtml) and look for the TLD of the domain. The second element
of the array for that TLD is the URL of the RDAP server. To lookup for a domain, just add domain to the URL
followed by the domain itself.

# Configuration file

Configuration definition
Expand Down Expand Up @@ -147,6 +112,18 @@ The datasets are:
- MediaTypesDataset: https://www.iana.org/assignments/media-types/media-types.xml
- SpecialIPv6AddressesDataset: https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml


# Release Process

All pushes and pull requests to the master branch are built using GitHub Actions. GitHub Actions are also used
to create a new version and put it in a [release](https://github.com/icann/rdap-conformance-tool/releases).

To publish, a release:
1. Update the version in the parent `pom.xml` file.
1. Commit that change.
1. Create a tag with the version number such as `v1.0.1` (must be "vX.X.X").
1. Push the tag to GitHub and a GitHub action will build and release the tool.

# License

Copyright 2021 Internet Corporation for Assigned Names and Numbers ("ICANN")
Expand Down
Binary file removed tool/bin/rdapct-1.0.jar
Binary file not shown.

0 comments on commit 31642b8

Please sign in to comment.