THIS IS A TEST INSTANCE ONLY! REPOSITORIES CAN BE DELETED AT ANY TIME!

This is Gitea test Portainer repository mirror from Github
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

49 lines
1.5KB

  1. #!/usr/bin/env bash
  2. ARCHIVE_BUILD_FOLDER="/tmp/portainer-builds"
  3. # parameter: "platform-architecture"
  4. function build_and_push_images() {
  5. docker build -t "portainer/portainer:$1-${VERSION}" -f build/linux/Dockerfile .
  6. docker tag "portainer/portainer:$1-${VERSION}" "portainer/portainer:$1"
  7. docker push "portainer/portainer:$1-${VERSION}"
  8. docker push "portainer/portainer:$1"
  9. }
  10. # parameter: "platform-architecture"
  11. function build_archive() {
  12. BUILD_FOLDER="${ARCHIVE_BUILD_FOLDER}/$1"
  13. rm -rf ${BUILD_FOLDER} && mkdir -pv ${BUILD_FOLDER}/portainer
  14. cp -r dist/* ${BUILD_FOLDER}/portainer/
  15. cd ${BUILD_FOLDER}
  16. tar cvpfz "portainer-${VERSION}-$1.tar.gz" portainer
  17. mv "portainer-${VERSION}-$1.tar.gz" ${ARCHIVE_BUILD_FOLDER}/
  18. cd -
  19. }
  20. function build_all() {
  21. mkdir -pv "${ARCHIVE_BUILD_FOLDER}"
  22. for tag in $@; do
  23. yarn grunt "release:`echo "$tag" | tr '-' ':'`"
  24. name="portainer"; if [ "$(echo "$tag" | cut -c1)" = "w" ]; then name="${name}.exe"; fi
  25. mv dist/portainer-$tag* dist/$name
  26. if [ `echo $tag | cut -d \- -f 1` == 'linux' ]; then build_and_push_images "$tag"; fi
  27. build_archive "$tag"
  28. done
  29. docker rmi $(docker images -q -f dangling=true)
  30. }
  31. if [[ $# -ne 1 ]] ; then
  32. echo "Usage: $(basename $0) <VERSION>"
  33. echo " $(basename $0) \"echo 'Custom' && <BASH COMMANDS>\""
  34. exit 1
  35. else
  36. VERSION="$1"
  37. if [ `echo "$@" | cut -c1-4` == 'echo' ]; then
  38. bash -c "$@";
  39. else
  40. build_all 'linux-amd64 linux-arm linux-arm64 linux-ppc64le linux-s390x darwin-amd64 windows-amd64'
  41. exit 0
  42. fi
  43. fi