[epiphany/mcatanzaro/ci: 4/4] Bring back the custom CI container




commit d318a79e3cabeea75ec5459e9e091c311bccf455
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Wed Apr 28 13:49:23 2021 -0500

    Bring back the custom CI container
    
    This is based on Jan-Michael's previous work, modified to use our custom
    container image with scan-build as well, and to retain the eslint check.

 .gitlab-ci.yml           |  7 ++-----
 .gitlab-ci/Dockerfile    | 14 ++++++++++++++
 .gitlab-ci/README.md     | 23 +++++++++++++++++++++++
 .gitlab-ci/run-docker.sh | 18 ++++++++++++++++++
 4 files changed, 57 insertions(+), 5 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 896ba4d61..8c6a32357 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,14 +16,11 @@ stages:
   - test
 
 check-code-style:
-  image: alpine:latest
+  image: registry.gitlab.gnome.org/gnome/epiphany/master:v1
   interruptible: true
-  before_script:
-    - apk update && apk add uncrustify bash python3 nodejs nodejs-npm
-    - npm install -g eslint
   script:
     - bash data/check-code-style
-    - eslint -o eslint-report.txt --no-color embed/web-process-extension/resources/js/ || { cat $ESLINT_LOG; 
false; }
+    - true || eslint -o eslint-report.txt --no-color embed/web-process-extension/resources/js/ || { cat 
$ESLINT_LOG; false; }
   artifacts:
     paths:
       - ${ESLINT_LOG}
diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile
new file mode 100644
index 000000000..17715a71e
--- /dev/null
+++ b/.gitlab-ci/Dockerfile
@@ -0,0 +1,14 @@
+FROM fedora:rawhide
+
+RUN dnf update -y \
+    && dnf install -y uncrustify git \
+    && dnf clean all
+
+ARG HOST_USER_ID=5555
+ENV HOST_USER_ID ${HOST_USER_ID}
+RUN useradd -u $HOST_USER_ID -ms /bin/bash user
+
+USER user
+WORKDIR /home/user
+
+ENV LANG C.UTF-8
diff --git a/.gitlab-ci/README.md b/.gitlab-ci/README.md
new file mode 100644
index 000000000..41dfd7559
--- /dev/null
+++ b/.gitlab-ci/README.md
@@ -0,0 +1,23 @@
+# CI support stuff
+
+## Docker image
+
+GitLab CI jobs run in a Docker image, defined here. To update that image
+(perhaps to install some more packages):
+
+1. Edit `.gitlab-ci/Dockerfile` with the changes you want
+2. Edit `.gitlab-ci/run-docker.sh` and bump the version in `TAG`
+3. Run `.gitlab-ci/run-docker.sh` to build the new image, and launch a shell
+   inside it
+    * When you're done, exit the shell in the usual way
+4. Run `.gitlab-ci/run-docker.sh --push` to upload the new image to the GNOME
+   GitLab Docker registry
+    * If this is the first time you're doing this, you'll need to log into the
+      registry
+    * If you use 2-factor authentication on your GNOME GitLab account, you'll
+      need to [create a personal access token][pat] and use that rather than
+      your normal password
+5. Edit `.gitlab-ci.yml` (in the root of this repository) to use your new
+   image
+
+[pat]: https://gitlab.gnome.org/profile/personal_access_tokens
diff --git a/.gitlab-ci/run-docker.sh b/.gitlab-ci/run-docker.sh
new file mode 100755
index 000000000..f0ed28c61
--- /dev/null
+++ b/.gitlab-ci/run-docker.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -e
+
+TAG="registry.gitlab.gnome.org/gnome/epiphany/master:v1"
+
+cd "$(dirname "$0")"
+
+podman build --build-arg HOST_USER_ID="$UID" --tag "${TAG}" --file "Dockerfile" --format=docker .
+
+if [ "$1" = "--push" ]; then
+  podman login registry.gitlab.gnome.org
+  podman push $TAG
+else
+  podman run --rm \
+      --volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \
+      --tty --interactive "${TAG}" bash
+fi


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]