build(ethtool): add job to build and publish image
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index e831222..dd1d5b8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -3,6 +3,39 @@
   pull_request: {}
 
 jobs:
+  build-prometheus-ethtool-exporter:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v3.0.2 
+        with:
+          fetch-depth: 0
+      - uses: tj-actions/changed-files@v29.0.2
+        id: changed-files
+        with:
+          files: images/prometheus-ethtool-exporter/*
+      - uses: docker/setup-qemu-action@v2.0.0
+        if: steps.changed-files.outputs.any_changed == 'true'
+      - uses: docker/setup-buildx-action@v2.0.0
+        if: steps.changed-files.outputs.any_changed == 'true'
+      - uses: docker/login-action@v2.0.0
+        if: steps.changed-files.outputs.any_changed == 'true'
+        with:
+          registry: quay.io
+          username: ${{ secrets.QUAY_USERNAME }}
+          password: ${{ secrets.QUAY_ROBOT_TOKEN }}
+      - uses: docker/build-push-action@v3.1.1
+        if: steps.changed-files.outputs.any_changed == 'true'
+        with:
+          context: images/prometheus-ethtool-exporter
+          cache-from: type=gha,scope=prometheus-ethtool-exporter
+          cache-to: type=gha,mode=max,scope=prometheus-ethtool-exporter
+          platforms: linux/amd64,linux/arm64
+          push: true
+          build-args: |
+            PROJECT_REF=$(cat images/prometheus-ethtool-exporter/ref)
+          tags: |
+            quay.io/vexxhost/ethtool-exporter:$(cat images/prometheus-ethtool-exporter/ref)
+
   build-image-strategy:
     runs-on: ubuntu-latest
     steps:
diff --git a/images/prometheus-ethtool-exporter/.dockerignore b/images/prometheus-ethtool-exporter/.dockerignore
new file mode 100644
index 0000000..72e8ffc
--- /dev/null
+++ b/images/prometheus-ethtool-exporter/.dockerignore
@@ -0,0 +1 @@
+*
diff --git a/images/prometheus-ethtool-exporter/Dockerfile b/images/prometheus-ethtool-exporter/Dockerfile
new file mode 100644
index 0000000..b413b93
--- /dev/null
+++ b/images/prometheus-ethtool-exporter/Dockerfile
@@ -0,0 +1,26 @@
+# syntax=docker/dockerfile:1.4
+
+FROM python:3
+
+# Install binary dependencies
+RUN <<EOF
+  apt-get update
+  apt-get install -y --no-install-recommends \
+    ethtool
+  apt-get clean
+  rm -rfv /var/lib/apt/lists/*
+EOF
+
+# Install Python dependencies
+RUN --mount=type=cache,target=/root/.cache <<EOF
+  pip install prometheus-client==0.14.1
+EOF
+
+# Install exporter
+ARG PROJECT_REF
+ADD --chmod=755 \
+  https://raw.githubusercontent.com/Showmax/prometheus-ethtool-exporter/${PROJECT_REF}/ethtool-exporter.py \
+  /usr/local/bin/ethtool-exporter
+
+# Set annotations
+ENTRYPOINT ["/usr/local/bin/ethtool-exporter"]
diff --git a/images/prometheus-ethtool-exporter/ref b/images/prometheus-ethtool-exporter/ref
new file mode 100644
index 0000000..59f3562
--- /dev/null
+++ b/images/prometheus-ethtool-exporter/ref
@@ -0,0 +1 @@
+5f05120a743a71adcbceb9f8ee1d43ecc7c4183a