Parcourir la source

chore: fix user generation after package install

- Fix user creation.
- Add Dockerfile to build the cadthecoder/ovpmd-builder:latest container.
- Split up the build.sh script into two parts: dependency (static)  part and build (dynamic) part.
Mustafa Arici il y a 8 ans
Parent
commit
d42c20dc41
7 fichiers modifiés avec 44 ajouts et 15 suppressions
  1. 21 0
      Dockerfile
  2. 3 2
      Makefile
  3. 12 13
      build.sh
  4. 1 0
      contrib/afterinstall.sh
  5. 1 0
      contrib/afterupgrade.sh
  6. 5 0
      contrib/beforeinstall.sh
  7. 1 0
      contrib/beforeremove.sh

+ 21 - 0
Dockerfile

@@ -0,0 +1,21 @@
+FROM fedora:latest
+MAINTAINER Mustafa Arici (mustafa@arici.io)
+
+
+
+# Deps
+RUN rpm --import https://mirror.go-repo.io/fedora/RPM-GPG-KEY-GO-REPO
+RUN curl -s https://mirror.go-repo.io/fedora/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
+RUN yum -y install golang ruby ruby-devel gcc make redhat-rpm-config git rpm-build rpmdevtools createrepo reprepro
+RUN gem install fpm
+
+VOLUME /fs/src/github.com/cad/ovpm
+
+ENV DIR="/fs/src/github.com/cad/ovpm"
+ENV RELEASEDIR=$DIR/release
+ENV UNITDIR="/usr/lib/systemd/system/"
+ENV GOPATH="/fs/"
+
+WORKDIR /fs/src/github.com/cad/ovpm
+
+CMD ["./build.sh"]

+ 3 - 2
Makefile

@@ -1,7 +1,8 @@
 .PHONY: deps build
 docker-build:
-	docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm fedora ./build.sh
-	#docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm fedora /bin/bash
+	docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm cadthecoder/ovpm-builder:latest
+docker-build-shell:
+	docker run --rm -i -t -e TRAVIS_GO_VERSION=$(TRAVIS_GO_VERSION) -e TRAVIS_BUILD_NUMBER=$(TRAVIS_BUILD_NUMBER) -e TRAVIS_TAG=$(TRAVIS_TAG) -v `pwd`:/fs/src/github.com/cad/ovpm -w /fs/src/github.com/cad/ovpm cadthecoder/ovpm-builder:latest /bin/bash
 
 deps:
 	# grpc related dependencies

+ 12 - 13
build.sh

@@ -1,23 +1,21 @@
 #!/bin/bash
 set -ex
 
+## After Docker
 echo "travis build no: $TRAVIS_BUILD_NUMBER"
 echo "travis tag: $TRAVIS_TAG"
 echo "travis go version: $TRAVIS_GO_VERSION"
 
-# deps
-rpm --import https://mirror.go-repo.io/fedora/RPM-GPG-KEY-GO-REPO
-curl -s https://mirror.go-repo.io/fedora/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
-yum -y install golang ruby ruby-devel gcc make redhat-rpm-config git rpm-build rpmdevtools createrepo reprepro
-gem install fpm
-
-# prep
-export DIR="/fs/src/github.com/cad/ovpm"
-export RELEASEDIR=$DIR/release
-export UNITDIR="/usr/lib/systemd/system/"
-export GOPATH="/fs/"
 export RELEASEVER=${TRAVIS_BUILD_NUMBER:-"1"}
 echo "releasever: $RELEASEVER"
+
+export VERSION="0.0"
+export LOCAL_GIT_TAG=`git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2`
+if [ "$LOCAL_GIT_TAG" != "undefined" ]; then
+    export VERSION=$LOCAL_GIT_TAG
+fi
+echo "Version is $VERSION"
+
 mkdir -p $RELEASEDIR/
 mkdir -p $RELEASEDIR/build/
 mkdir -p $RELEASEDIR/rpm/
@@ -41,9 +39,9 @@ cp $DIR/contrib/yumrepo.repo $RELEASEDIR/rpm/ovpm.repo
 cp $DIR/contrib/deb-repo-config $RELEASEDIR/deb/conf/distributions
 
 #package
-fpm -s dir -t rpm -n ovpm --version `git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2` --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/rpm -C $RELEASEDIR/build .
+fpm -s dir -t rpm -n ovpm --version $VERSION  --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --before-install $DIR/contrib/beforeinstall.sh --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/rpm -C $RELEASEDIR/build .
 
-fpm -s dir -t deb -n ovpm --version `git name-rev --tags --name-only $(git rev-parse HEAD) | cut -d 'v' -f 2` --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/deb -C $RELEASEDIR/build .
+fpm -s dir -t deb -n ovpm --version $VERSION --iteration $RELEASEVER --depends openvpn --description "OVPM makes all aspects of OpenVPN server administration a breeze." --before-install $DIR/contrib/beforeinstall.sh --after-install $DIR/contrib/afterinstall.sh --before-remove $DIR/contrib/beforeremove.sh --after-upgrade $DIR/contrib/afterupgrade.sh -p $RELEASEDIR/deb -C $RELEASEDIR/build .
 
 #create rpm repo
 createrepo --database $RELEASEDIR/rpm
@@ -53,3 +51,4 @@ reprepro -b $RELEASEDIR/deb/ includedeb ovpm $RELEASEDIR/deb/*.deb
 
 # clean
 rm -rf $RELEASEDIR/build
+echo "packages are ready at ./deb/ and ./rpm/"

+ 1 - 0
contrib/afterinstall.sh

@@ -1,3 +1,4 @@
+#!/bin/bash
 export USER="nobody"
 export GROUP="nobody"
 id -u $USER &>/dev/null || useradd $USER

+ 1 - 0
contrib/afterupgrade.sh

@@ -1,3 +1,4 @@
+#!/bin/bash
 if [ "`systemctl is-active ovpmd`" != "active" ]
 then
     systemctl restart ovpmd

+ 5 - 0
contrib/beforeinstall.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+export USER="nobody"
+export GROUP="nobody"
+getent passwd $USER || useradd $USER
+getent group $GROUP || groupadd $GROUP

+ 1 - 0
contrib/beforeremove.sh

@@ -1,2 +1,3 @@
+#!/bin/bash
 systemctl stop ovpmd
 systemctl disable ovpmd