Browse Source

travis integration

Gorka Lerchundi Osa 10 năm trước cách đây
mục cha
commit
85003f9c10
28 tập tin đã thay đổi với 65 bổ sung37 xóa
  1. 15 0
      .travis.yml
  2. 10 6
      Dockerfile
  3. 5 3
      README.md
  4. 28 24
      builder/build-latest
  5. 7 0
      builder/build-wrapper
  6. 0 0
      builder/overlay-rootfs/etc/fix-attrs.d/00-runscripts
  7. 0 0
      builder/overlay-rootfs/etc/s6/init/env/PATH
  8. 0 0
      builder/overlay-rootfs/etc/s6/init/init-stage1
  9. 0 0
      builder/overlay-rootfs/etc/s6/init/init-stage2
  10. 0 0
      builder/overlay-rootfs/etc/s6/init/init-stage3
  11. 0 0
      builder/overlay-rootfs/etc/s6/service/.s6-svscan/crash
  12. 0 0
      builder/overlay-rootfs/etc/s6/service/.s6-svscan/finish
  13. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/down
  14. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/allow
  15. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_GETDUMP
  16. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_LIST
  17. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX
  18. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_SETDUMP
  19. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX
  20. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/allow
  21. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/env/S6_FDHOLDER_LIST
  22. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-fdholderd/run
  23. 0 0
      builder/overlay-rootfs/etc/s6/service/s6-svscan-log/run
  24. 0 0
      builder/overlay-rootfs/init
  25. 0 0
      builder/overlay-rootfs/usr/bin/fix-attrs
  26. 0 0
      builder/overlay-rootfs/usr/bin/with-contenv
  27. 0 0
      builder/overlay-rootfs/usr/bin/with-notifywhenup
  28. 0 4
      rootfs/build-wrapper

+ 15 - 0
.travis.yml

@@ -0,0 +1,15 @@
+sudo: false
+script:
+- cd builder && RELEASE_VERSION="${TRAVIS_TAG:1}" ./build-latest
+deploy:
+  provider: releases
+  skip_cleanup: true
+  api_key:
+    secure: "cHrT98HKxe3HLFabDnCcohGJQJzmbjQHIjI7sggvDRS3g9FhgeA2Ncbwvl55/1TsGYE+KthGZ4zB5kjeiUBTHZCGMOsl1YzvQ+LK7OQ6Ybl8yLNfaer/RLcajznKsWRVLI52bQAAlTDVZCit0Ohfr6bk9UVW7k8SawaFeJ1qXgs="
+  file:
+    - $HOME/dist/*.tar.gz
+  file_glob: true
+  on:
+    repo: just-containers/s6-overlay-builder
+    branch: master
+    tags: true

+ 10 - 6
Dockerfile

@@ -4,11 +4,15 @@ MAINTAINER Gorka Lerchundi Osa <[email protected]>
 ENV LC_ALL C
 ENV DEBIAN_FRONTEND noninteractive
 
-RUN apt-get update && apt-get install -y curl
-COPY rootfs /
-RUN chmod +x /build-*
+RUN apt-get update && \
+    apt-get -y install curl && \
+    apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
 
-ENV OVERLAY_ROOTFS_PATH /overlay-rootfs
-COPY overlay-rootfs $OVERLAY_ROOTFS_PATH
+COPY builder /builder
+RUN chown -R nobody:nogroup /builder
 
-CMD [ "/build-wrapper" ]
+USER nobody
+ENV HOME /builder
+WORKDIR /builder
+
+CMD [ "./build-wrapper" ]

+ 5 - 3
README.md

@@ -1,5 +1,7 @@
 ```
-docker build .                            | \
-tail -n 1 | awk '{ print $3; }'           | \
-xargs docker run --rm -v `pwd`/dist:/dist
+mkdir dist
+chmod o+rw dist
+docker build .                                    | \
+tail -n 1 | awk '{ print $3; }'                   | \
+xargs docker run --rm -v `pwd`/dist:/builder/dist
 ```

+ 28 - 24
rootfs/build-latest → builder/build-latest

@@ -6,14 +6,16 @@ set -x
 ## PARAMS
 ##
 
-OVERLAY_ROOTFS_PATH=${1:-/overlay-rootfs}
-RELEASE_VERSION=${2:-1.7.1}
+RELEASE_VERSION=${RELEASE_VERSION:-1.7.1}
 SKAWARE_VERSION=${RELEASE_VERSION%.*}.0
 
+PWD=$(pwd)
+OVERLAY_SRC_PATH=${OVERLAY_SRC_PATH:-$PWD/overlay-rootfs}
+OVERLAY_DST_PATH=${OVERLAY_DST_PATH:-$PWD/overlay-rootfs}
+
 outputs=( 'linux' 'portable' )
 editions=( '' 'debug' )
 
-
 get_packages_with_versions_from_manifest() {
   # manifest
   manifest=$1
@@ -37,6 +39,7 @@ get_packages_with_versions_from_manifest() {
   # delete manifest
   rm /tmp/manifest.txt
 
+  # output manifest as an array
   echo ${versions[@]}
 }
 
@@ -64,52 +67,53 @@ for output in "${outputs[@]}"; do
   for edition in "${editions[@]}"; do
     # overlay path and dist file
     if [ "${edition}" == "debug" ]; then
-      overlaysrc="$OVERLAY_ROOTFS_PATH-$output-dbg"
-      overlaydst="/dist/s6-overlay-$RELEASE_VERSION-$output-dbg-amd64.tar.gz"
+      overlaydstpath="$OVERLAY_DST_PATH-$output-dbg"
+      overlaytarpath="$HOME/dist/s6-overlay-$output-dbg-amd64.tar.gz"
       
     else
-      overlaysrc="$OVERLAY_ROOTFS_PATH-$output"
-      overlaydst="/dist/s6-overlay-$RELEASE_VERSION-$output-amd64.tar.gz"
+      overlaydstpath="$OVERLAY_DST_PATH-$output"
+      overlaytarpath="$HOME/dist/s6-overlay-$output-amd64.tar.gz"
     fi
 
     # create overlay folder
-    mkdir -p $overlaysrc
+    mkdir -p $overlaydstpath
+    mkdir -p $HOME/dist
 
     # copy overlay files
-    cp -a $OVERLAY_ROOTFS_PATH/. $overlaysrc/
+    cp -a $OVERLAY_SRC_PATH/. $overlaydstpath/
 
     # skarnet versions manifest
     packages=($(get_packages_with_versions_from_manifest "manifest-$output.txt"))
 
     # install required binaries for this concrete output
     for package in "${packages[@]}"; do
-      echo "####### /tmp/$package-linux-amd64-bin.tar.gz ########"
-      tar xvfz /tmp/$package-linux-amd64-bin.tar.gz -C $overlaysrc
+      tar xvfz /tmp/$package-linux-amd64-bin.tar.gz -C $overlaydstpath
     done
 
     # create must exist directories
-    mkdir -p $overlaysrc/etc/s6/init/env-stage2
-    mkdir -p $overlaysrc/etc/{cont-init.d,fix-attrs.d,services.d}
-    mkdir -p $overlaysrc/var/log/s6-uncaught-logs
+    mkdir -p $overlaydstpath/etc/s6/init/env-stage2
+    mkdir -p $overlaydstpath/etc/{cont-init.d,fix-attrs.d,services.d}
+    mkdir -p $overlaydstpath/var/log/s6-uncaught-logs
 
     # fix fix-attrs perms
-    chmod 0755 $overlaysrc/usr/bin/fix-attrs
+    chmod 0755 $overlaydstpath/usr/bin/fix-attrs
 
     # fix init perms
-    chmod 0755 $overlaysrc/init
-    chmod 0755 $overlaysrc/etc/s6/init/init-stage*
-    chmod 0755 $overlaysrc/etc/s6/service/.s6-svscan/{crash,finish}
-    chmod 0755 $overlaysrc/etc/s6/service/s6-fdholderd/run
-    chmod 0755 $overlaysrc/etc/s6/service/s6-svscan-log/run
+    chmod 0755 $overlaydstpath/init
+    chmod 0755 $overlaydstpath/etc/s6/init/init-stage*
+    chmod 0755 $overlaydstpath/etc/s6/service/.s6-svscan/{crash,finish}
+    chmod 0755 $overlaydstpath/etc/s6/service/s6-fdholderd/run
+    chmod 0755 $overlaydstpath/etc/s6/service/s6-svscan-log/run
 
     # copy debugging tools & fix perms
     if [ "${edition}" == "debug" ]; then
-      cp /tmp/strace $overlaysrc/usr/bin/strace
-      chmod 0755 $overlaysrc/usr/bin/strace
+      cp /tmp/strace $overlaydstpath/usr/bin/strace
+      chmod 0755 $overlaydstpath/usr/bin/strace
     fi
 
     # dist!
-    mkdir -p /dist
-    tar -zcvf $overlaydst -C $overlaysrc ./
+    tar -zcvf $overlaytarpath -C $overlaydstpath ./
   done
 done
+
+exit 0

+ 7 - 0
builder/build-wrapper

@@ -0,0 +1,7 @@
+#!/usr/bin/env bash 
+set -e
+set -x
+
+rm -f $HOME/dist/*
+./build-latest 2>&1 | tee "$HOME/dist/build-latest-$(date +'%Y%m%d%H%M%S').log"
+exit 0

+ 0 - 0
overlay-rootfs/etc/fix-attrs.d/00-runscripts → builder/overlay-rootfs/etc/fix-attrs.d/00-runscripts


+ 0 - 0
overlay-rootfs/etc/s6/init/env/PATH → builder/overlay-rootfs/etc/s6/init/env/PATH


+ 0 - 0
overlay-rootfs/etc/s6/init/init-stage1 → builder/overlay-rootfs/etc/s6/init/init-stage1


+ 0 - 0
overlay-rootfs/etc/s6/init/init-stage2 → builder/overlay-rootfs/etc/s6/init/init-stage2


+ 0 - 0
overlay-rootfs/etc/s6/init/init-stage3 → builder/overlay-rootfs/etc/s6/init/init-stage3


+ 0 - 0
overlay-rootfs/etc/s6/service/.s6-svscan/crash → builder/overlay-rootfs/etc/s6/service/.s6-svscan/crash


+ 0 - 0
overlay-rootfs/etc/s6/service/.s6-svscan/finish → builder/overlay-rootfs/etc/s6/service/.s6-svscan/finish


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/down → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/down


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/allow → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/allow


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_GETDUMP → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_GETDUMP


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_LIST → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_LIST


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_RETRIEVE_REGEX


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_SETDUMP → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_SETDUMP


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/0/env/S6_FDHOLDER_STORE_REGEX


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/allow → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/allow


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/env/S6_FDHOLDER_LIST → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/rules/uid/default/env/S6_FDHOLDER_LIST


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-fdholderd/run → builder/overlay-rootfs/etc/s6/service/s6-fdholderd/run


+ 0 - 0
overlay-rootfs/etc/s6/service/s6-svscan-log/run → builder/overlay-rootfs/etc/s6/service/s6-svscan-log/run


+ 0 - 0
overlay-rootfs/init → builder/overlay-rootfs/init


+ 0 - 0
overlay-rootfs/usr/bin/fix-attrs → builder/overlay-rootfs/usr/bin/fix-attrs


+ 0 - 0
overlay-rootfs/usr/bin/with-contenv → builder/overlay-rootfs/usr/bin/with-contenv


+ 0 - 0
overlay-rootfs/usr/bin/with-notifywhenup → builder/overlay-rootfs/usr/bin/with-notifywhenup


+ 0 - 4
rootfs/build-wrapper

@@ -1,4 +0,0 @@
-#!/usr/bin/env bash
-
-rm -f /dist/*
-/build-latest 2>&1 | tee "/dist/build-latest-$(date +'%Y%m%d%H%M%S').log"