diff --git a/assets/bash/Dockerfile b/assets/bash/Dockerfile deleted file mode 100644 index 81d93a6..0000000 --- a/assets/bash/Dockerfile +++ /dev/null @@ -1,56 +0,0 @@ -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -FROM debian:jessie-slim - -# Prevent the packages installation to halt. -ENV DEBIAN_FRONTEND noninteractive -# Specify the user running Seafile. -ENV UNAME=seafuser -ENV UID=1000 -ENV GID=1000 - -# Copy over the Docker related files. -COPY utils/build/import-seafile-apt-key.sh / -COPY assets/bash/docker-entrypoint.sh /entrypoint.sh - -# Safely import Seafile APT key, then install both seafile-cli and supervisord. -RUN mkdir -p /etc/apt/sources.list.d/ ;\ - echo "deb http://deb.seadrive.org jessie main" \ - > /etc/apt/sources.list.d/seafile.list ;\ - /bin/bash /import-seafile-apt-key.sh ;\ - apt-get update ;\ - apt-get install \ - -o Dpkg::Options::="--force-confold" \ - -y seafile-cli ;\ - apt-get clean ;\ - apt-get autoclean \ - -o APT::Clean-Installed=true ;\ - rm \ - -f \ - /var/log/fsck/*.log \ - /var/log/apt/*.log \ - /var/cache/debconf/*.dat-old \ - /import-seafile-apt-key.sh ;\ - mkdir /volume ;\ - groupadd -g $GID -o $UNAME ;\ - useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME - -# Copy over the required files for Seafile/SupervisorD. -COPY assets/bash/seafile-healthcheck.sh /home/seafuser/ -COPY assets/bash/seafile-entrypoint.sh /home/seafuser/entrypoint.sh - -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/assets/bash/docker-entrypoint.sh b/assets/bash/docker-entrypoint.sh deleted file mode 100644 index c2cf920..0000000 --- a/assets/bash/docker-entrypoint.sh +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Check mandatory Seafile configuration have been properly set. -if [ -z $SEAF_SERVER_URL ]; then echo "The \$SEAF_SERVER_URL was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_USERNAME ]; then echo "The \$SEAF_USERNAME was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_PASSWORD ]; then echo "The \$SEAF_PASSWORD was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_LIBRARY_UUID ]; then echo "The \$SEAF_LIBRARY_UUID was not defined. Stopping container..."; exit 1; fi - -# Update the user ID, if the $UID changed. -if [ "$UID" != "1000" ]; then - usermod -u $UID $UNAME - # What if the $UID already exists ? -fi - -# Change the group, if the $GID changed. -if [ "$GID" != "1000" ]; then - getent group | grep ":$GID:" >/dev/null - if [ $? -eq 0 ]; then - usermod -g $GID -G 1000 $UNAME - else - groupmod -g $GID $UNAME - fi -fi - -# Set the files ownership. -chown $UID.$GID -R /home/seafuser/seafile-healthcheck.sh -chown $UID.$GID -R /home/seafuser/entrypoint.sh -chown $UID.$GID -R /volume - -# Run the Seafile client as the container user. -su - $UNAME << EO - export SEAF_SERVER_URL=$SEAF_SERVER_URL - export SEAF_USERNAME=$SEAF_USERNAME - export SEAF_PASSWORD=$SEAF_PASSWORD - export SEAF_LIBRARY_UUID=$SEAF_LIBRARY_UUID - export UNAME=$UNAME - /bin/bash /home/seafuser/entrypoint.sh -EO \ No newline at end of file diff --git a/assets/bash/seafile-entrypoint.sh b/assets/bash/seafile-entrypoint.sh deleted file mode 100644 index a029c5b..0000000 --- a/assets/bash/seafile-entrypoint.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Define variable shortcuts for readability purposes. -seafile_ini=~/.ccnet/seafile.ini -seafile_sock=~/.seafile/seafile-data/seafile.sock - -# Prepare the directories. -mkdir ~/.seafile - -# Safely initialise the Seafile client. -/usr/bin/seaf-cli init -d ~/.seafile -while [ ! -f $seafile_ini ]; do sleep 1; done - -# Safely start the Seafile daemon. -/usr/bin/seaf-cli start -while [ ! -S $seafile_sock ]; do sleep 1; done - -# Start the synchronisation. -/usr/bin/seaf-cli sync -u $SEAF_USERNAME -p $SEAF_PASSWORD -s $SEAF_SERVER_URL -l $SEAF_LIBRARY_UUID -d /volume - -# Run the infinite Seafile restart. -source ~/seafile-healthcheck.sh diff --git a/assets/bash/seafile-healthcheck.sh b/assets/bash/seafile-healthcheck.sh deleted file mode 100755 index 9b05e63..0000000 --- a/assets/bash/seafile-healthcheck.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# `seaf-cli status` output csv-like information with tabulates as separators and columns named in comment lines. -# The Seafile client should not be restarted while some statuses are occuring, such as "downloading" or "committing". -# -# This script grabs the output while ignoring the comments to iterate over the informations set to their columns, -# then it compares the statuses, when not empty, to the ones that do not require a restart. Finally either restart or don't. - -seaf=/usr/bin/seaf-cli -dont_restart_on=("downloading" "committing") -restart=true - -sleep 10s -while true; do - while IFS=$'\t' read -r name status progress; do - if [ $status ]; then - for dont_restart_on_status in "${dont_restart_on[@]}"; do - if [ "$status" == "$dont_restart_on_status" ]; then - restart=false; break; break - fi - done - fi - done < <($seaf status | grep -v "^#") - - if $restart; then - $seaf stop - $seaf start - fi - - sleep 10m -done \ No newline at end of file diff --git a/assets/seafile.list b/assets/seafile.list deleted file mode 100644 index 11f6d09..0000000 --- a/assets/seafile.list +++ /dev/null @@ -1 +0,0 @@ -deb http://deb.seadrive.org jessie main \ No newline at end of file diff --git a/assets/supervisord/Dockerfile b/assets/supervisord/Dockerfile deleted file mode 100644 index bf66fc7..0000000 --- a/assets/supervisord/Dockerfile +++ /dev/null @@ -1,58 +0,0 @@ -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -FROM debian:jessie-slim - -# Prevent the packages installation to halt. -ENV DEBIAN_FRONTEND noninteractive -# Specify the user running Seafile. -ENV UNAME=seafuser -ENV UID=1000 -ENV GID=1000 - -# Copy over the Docker related files. -COPY utils/build/import-seafile-apt-key.sh / -COPY assets/supervisord/dockerentrypoint.sh /entrypoint.sh - -# Safely import Seafile APT key, then install both seafile-cli and supervisord. -RUN mkdir -p /etc/apt/sources.list.d/ ;\ - echo "deb http://deb.seadrive.org jessie main" \ - > /etc/apt/sources.list.d/seafile.list ;\ - /bin/bash /import-seafile-apt-key.sh ;\ - apt-get update ;\ - apt-get install \ - -o Dpkg::Options::="--force-confold" \ - -y \ - seafile-cli \ - supervisor ;\ - apt-get clean ;\ - apt-get autoclean \ - -o APT::Clean-Installed=true ;\ - rm \ - -f \ - /var/log/fsck/*.log \ - /var/log/apt/*.log \ - /var/cache/debconf/*.dat-old \ - /import-seafile-apt-key.sh ;\ - mkdir /volume ;\ - groupadd -g $GID -o $UNAME ;\ - useradd -m -u $UID -g $GID -o -s /bin/bash $UNAME - -# Copy over the required files for Seafile/SupervisorD. -COPY assets/supervisord/supervisord.conf assets/supervisord/seafile-healthcheck.sh /home/seafuser/ -COPY assets/supervisord/seafile-entrypoint.sh /home/seafuser/entrypoint.sh - -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] diff --git a/assets/supervisord/docker-entrypoint.sh b/assets/supervisord/docker-entrypoint.sh deleted file mode 100644 index 0fef05e..0000000 --- a/assets/supervisord/docker-entrypoint.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Check mandatory Seafile configuration have been properly set. -if [ -z $SEAF_SERVER_URL ]; then echo "The \$SEAF_SERVER_URL was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_USERNAME ]; then echo "The \$SEAF_USERNAME was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_PASSWORD ]; then echo "The \$SEAF_PASSWORD was not defined. Stopping container..."; exit 1; fi -if [ -z $SEAF_LIBRARY_UUID ]; then echo "The \$SEAF_LIBRARY_UUID was not defined. Stopping container..."; exit 1; fi - -# Update the user ID, if the $UID changed. -if [ "$UID" != "1000" ]; then - usermod -u $UID $UNAME - # TODO: What if the $UID already exists ? -fi - -# Change the group, if the $GID changed. -if [ "$GID" != "1000" ]; then - getent group | grep ":$GID:" >/dev/null - if [ $? -eq 0 ]; then - usermod -g $GID -G 1000 $UNAME - else - groupmod -g $GID $UNAME - fi -fi - -# Set the files ownership. -chown $UID.$GID -R /home/seafuser/supervisord.conf -chown $UID.$GID -R /home/seafuser/seafile-healthcheck.sh -chown $UID.$GID -R /home/seafuser/entrypoint.sh -chown $UID.$GID -R /volume - -# Run the Seafile client as the container user. -su - $UNAME << EO - export SEAF_SERVER_URL=$SEAF_SERVER_URL - export SEAF_USERNAME=$SEAF_USERNAME - export SEAF_PASSWORD=$SEAF_PASSWORD - export SEAF_LIBRARY_UUID=$SEAF_LIBRARY_UUID - export UNAME=$UNAME - /bin/bash /home/seafuser/entrypoint.sh -EO \ No newline at end of file diff --git a/assets/supervisord/seafile-entrypoint.sh b/assets/supervisord/seafile-entrypoint.sh deleted file mode 100644 index e603906..0000000 --- a/assets/supervisord/seafile-entrypoint.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Define variable shortcuts for readability purposes. -seafile_ini=~/.ccnet/seafile.ini -seafile_sock=~/.seafile/seafile-data/seafile.sock -supervisord_conf=~/supervisord.conf -supervisord_pid=~/.supervisord/supervisord.pid -supervisord_log=~/.supervisord/supervisord.log - -# Prepare the directories. -mkdir ~/.seafile -mkdir ~/.supervisord - -# Safely initialise the Seafile client. -/usr/bin/seaf-cli init -d ~/.seafile -while [ ! -f $seafile_ini ]; do sleep 1; done - -# Safely start the Seafile daemon. -/usr/bin/seaf-cli start -while [ ! -S $seafile_sock ]; do sleep 1; done - -# Start the synchronisation. -/usr/bin/seaf-cli sync -u $SEAF_USERNAME -p $SEAF_PASSWORD -s $SEAF_SERVER_URL -l $SEAF_LIBRARY_UUID -d /volume - -# Start the supervisord. -/usr/bin/supervisord -u $UNAME -c $supervisord_conf -j $supervisord_pid -l $supervisord_log \ No newline at end of file diff --git a/assets/supervisord/seafile-healthcheck.sh b/assets/supervisord/seafile-healthcheck.sh deleted file mode 100755 index 9b05e63..0000000 --- a/assets/supervisord/seafile-healthcheck.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# `seaf-cli status` output csv-like information with tabulates as separators and columns named in comment lines. -# The Seafile client should not be restarted while some statuses are occuring, such as "downloading" or "committing". -# -# This script grabs the output while ignoring the comments to iterate over the informations set to their columns, -# then it compares the statuses, when not empty, to the ones that do not require a restart. Finally either restart or don't. - -seaf=/usr/bin/seaf-cli -dont_restart_on=("downloading" "committing") -restart=true - -sleep 10s -while true; do - while IFS=$'\t' read -r name status progress; do - if [ $status ]; then - for dont_restart_on_status in "${dont_restart_on[@]}"; do - if [ "$status" == "$dont_restart_on_status" ]; then - restart=false; break; break - fi - done - fi - done < <($seaf status | grep -v "^#") - - if $restart; then - $seaf stop - $seaf start - fi - - sleep 10m -done \ No newline at end of file diff --git a/assets/supervisord/supervisord.conf b/assets/supervisord/supervisord.conf deleted file mode 100644 index 2139015..0000000 --- a/assets/supervisord/supervisord.conf +++ /dev/null @@ -1,30 +0,0 @@ -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Run in the foreground to keep the container running. -[supervisord] -nodaemon=true - -# Manage the Seafile daemon. -[unix_http_socket] -file=~/.seafile/seafile-data/seafile.sock - -# Manage the infinite `seaf-cli start`. -[program:seaf-cli-start-loop] -command=/bin/bash /home/seafuser/seafile-healthcheck.sh -process_name=%(program_name)s -numprocs=1 -autostart=true diff --git a/utils/build/import-seafile-apt-key.sh b/utils/build/import-seafile-apt-key.sh deleted file mode 100644 index 4818945..0000000 --- a/utils/build/import-seafile-apt-key.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -not_imported=true -while $not_imported; do - apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 8756C4F765C9AC3CB6B85D62379CE192D401AB61 - if [ $? -eq 0 ]; then - not_imported=false - else - sleep 5 - fi -done \ No newline at end of file diff --git a/utils/publish/feature--cron-or-supervisord.sh b/utils/publish/feature--cron-or-supervisord.sh deleted file mode 100755 index 59446dc..0000000 --- a/utils/publish/feature--cron-or-supervisord.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Restrict to pipeline triggered by pushes. -if [ $CI_PIPELINE_SOURCE != "push" ]; then - echo "This must be only ran from pushes." - exit 1 -fi - -# Login with Docker Registry. -echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin - -# Build and push as staging. -docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-supervisord -f assets/supervisord/Dockerfile . -docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-cron -f assets/cron/Dockerfile . -docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging-bash -f assets/bash/Dockerfile . -docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-supervisord -docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-cron -docker push index.docker.io/$CI_REGISTRY_IMAGE:staging-bash diff --git a/utils/publish/production.sh b/utils/publish/production.sh deleted file mode 100755 index 8c8d48e..0000000 --- a/utils/publish/production.sh +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Restrict production build to tag matching MAJOR.MINOR.REVISION. -if ! [[ "$CI_COMMIT_TAG" =~ ^[0-9]+[.][0-9]+[.][0-9]+$ ]]; then - echo "Version number must match major.minor.revision!" - exit 1 -fi - -# When this stage is ran from 'push', the build target is BUILD_LATEST. -# When this stage is ran from 'trigger', the build target must be provided. -# Otherwise, stop the stage. -if [ $CI_PIPELINE_SOURCE == "push" ]; then - BUILD_LATEST=true -elif [ $CI_PIPELINE_SOURCE == "trigger" ]; then - if [ -z $BUILD_LATEST ] && \ - [ -z $BUILD_MAJOR ] && \ - [ -z $BUILD_MINOR ] && \ - [ -z $BUILD_REVISION ]; then - echo "You must provide build targets to this stage when ran from Pipeline Triggers." - exit 1 - fi -else - echo "This stage is restricted to 'push' or 'trigger' Pipeline sources." - exit 1 -fi - -# Cascade the builds by inheritance. -if [ $BUILD_LATEST ]; then BUILD_MAJOR=true; BUILD_MINOR=true; BUILD_REVISION=true; fi -if [ $BUILD_MAJOR ]; then BUILD_MINOR=true; BUILD_REVISION=true; fi -if [ $BUILD_MINOR ]; then BUILD_REVISION=true; fi - -# Define MAJOR, MINOR and REVISION version numbers. -MAJOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $1'}) -MINOR_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $2'}) -REVISION_NUMBER=$(echo "$CI_COMMIT_TAG" | awk -F \. {'print $3'}) -MAJOR=$MAJOR_NUMBER -MINOR=$MAJOR.$MINOR_NUMBER -REVISION=$MINOR.$REVISION_NUMBER - -# Always build with all tags, there's a single build anyway. -docker build \ - -t index.docker.io/$CI_REGISTRY_IMAGE:latest \ - -t index.docker.io/$CI_REGISTRY_IMAGE:$MAJOR \ - -t index.docker.io/$CI_REGISTRY_IMAGE:$MINOR \ - -t index.docker.io/$CI_REGISTRY_IMAGE:$REVISION . - -# Login with Docker Registry. -echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin - -# Only push requested builds. -if [ $BUILD_LATEST ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:latest; fi -if [ $BUILD_MAJOR ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$MAJOR; fi -if [ $BUILD_MINOR ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$MINOR; fi -if [ $BUILD_REVISION ]; then docker push index.docker.io/$CI_REGISTRY_IMAGE:$REVISION; fi \ No newline at end of file diff --git a/utils/publish/staging.sh b/utils/publish/staging.sh deleted file mode 100755 index ba28fcf..0000000 --- a/utils/publish/staging.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Restrict to pipeline triggered by pushes. -if [ $CI_PIPELINE_SOURCE != "push" ]; then - echo "This must be only ran from pushes." - exit 1 -fi - -# Login with Docker Registry. -echo $CI_REGISTRY_BOT_PASSWORD | docker login -u $CI_REGISTRY_BOT_USERNAME docker.io --password-stdin - -# Build and push as staging. -docker build -t index.docker.io/$CI_REGISTRY_IMAGE:staging . -docker push index.docker.io/$CI_REGISTRY_IMAGE:staging \ No newline at end of file diff --git a/utils/publish/update-docker-hub-full-description.sh b/utils/publish/update-docker-hub-full-description.sh deleted file mode 100644 index 670eb53..0000000 --- a/utils/publish/update-docker-hub-full-description.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash - -# Docker Seafile client, help you mount a Seafile library as a volume. -# Copyright (C) 2019, flow.gunso@gmail.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Based upon https://gist.github.com/jlhawn/8f218e7c0b14c941c41f -# and https://github.com/moikot/golang-dep/blob/master/.travis/push.sh - -# This action can only be done with the actual owner of the repository, -# unless you can extend the collaborator's permissions but as far as I know, you can't. - -# Install required system packages. -apk add curl jq - -# Get a token from hub.docker.com with the owner credentials. -token=$(curl -s \ - -X POST \ - -H "Content-Type: application/json" \ - -d '{"username": "'"$CI_REGISTRY_OWNER_USERNAME"'", "password": "'"$CI_REGISTRY_OWNER_PASSWORD"'"}' \ - https://hub.docker.com/v2/users/login/ | jq -r .token) - -# Generate a JSON with the README.md as the full_description. -json=$(jq -n \ - --arg readme "$(