diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fee872b7..a7a3c8076 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,6 +22,13 @@ jobs: steps: - uses: actions/checkout@v2 + - name: set up qemu + uses: docker/setup-qemu-action@v1 + + - name: set up docker buildx + id: buildx + uses: docker/setup-buildx-action@v1 + - name: build package run: ./tests/ci/setup.sh build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 24a2ddab1..2d90c24da 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,12 +27,27 @@ jobs: with: ruby-version: 2.6 - - name: Login to Docker Hub + - name: login to docker hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: set up qemu + uses: docker/setup-qemu-action@v1 + + - name: set up docker buildx + id: buildx + uses: docker/setup-buildx-action@v1 + + - name: inspect builder + run: | + echo "Name: ${{ steps.buildx.outputs.name }}" + echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}" + echo "Status: ${{ steps.buildx.outputs.status }}" + echo "Flags: ${{ steps.buildx.outputs.flags }}" + echo "Platforms: ${{ steps.buildx.outputs.platforms }}" + - name: install package_cloud run: gem install package_cloud diff --git a/Dockerfile b/Dockerfile index 9088cc1de..5fe94a8ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,15 +22,15 @@ RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections && echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections \ && echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections \ && curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - \ - && echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ bionic main" | tee /etc/apt/sources.list.d/dokku.list \ + && echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ focal main" | tee /etc/apt/sources.list.d/dokku.list \ && mkdir -p /etc/nginx/ \ && cp /tmp/dhparam.pem /etc/nginx/dhparam.pem \ - && apt-get update -qq \ - && apt-get upgrade -qq -y \ - && apt-get -qq -y --no-install-recommends --only-upgrade install openssl openssh-server \ - && apt-get -qq -y --no-install-recommends install rsync "/tmp/dokku-$(dpkg --print-architecture).deb" \ - && apt-get purge -qq -y syslog-ng-core \ - && apt-get autoremove -qq -y \ + && apt-get update \ + && apt-get upgrade -y \ + && apt-get -y --no-install-recommends --only-upgrade install openssl openssh-server \ + && apt-get -y --no-install-recommends install rsync "/tmp/dokku-$(dpkg --print-architecture).deb" \ + && apt-get purge -y syslog-ng-core \ + && apt-get autoremove -y \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* WORKDIR /tmp diff --git a/Makefile b/Makefile index a6e9b3972..2743de58a 100644 --- a/Makefile +++ b/Makefile @@ -1,17 +1,17 @@ DOKKU_VERSION ?= master -DOCKER_IMAGE_LABELER_VERSION ?= 0.2.2 -HEROKUISH_VERSION ?= 0.5.25 -NETRC_VERSION ?= 0.3.0 -PLUGN_VERSION ?= 0.6.1 -PROCFILE_VERSION ?= 0.11.0 -SIGIL_VERSION ?= 0.6.0 -SSHCOMMAND_VERSION ?= 0.12.0 -DOCKER_IMAGE_LABELER_URL ?= https://github.com/dokku/docker-image-labeler/releases/download/v${DOCKER_IMAGE_LABELER_VERSION}/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_linux_x86_64.tgz -NETRC_URL ?= https://github.com/dokku/netrc/releases/download/v${NETRC_VERSION}/netrc_${NETRC_VERSION}_linux_x86_64.tgz -PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v${PLUGN_VERSION}/plugn_${PLUGN_VERSION}_linux_x86_64.tgz -PROCFILE_UTIL_URL ?= https://github.com/josegonzalez/go-procfile-util/releases/download/v${PROCFILE_VERSION}/procfile-util_${PROCFILE_VERSION}_linux_x86_64.tgz -SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/sigil_${SIGIL_VERSION}_Linux_x86_64.tgz +DOCKER_IMAGE_LABELER_VERSION ?= 0.4.1 +HEROKUISH_VERSION ?= 0.5.34 +NETRC_VERSION ?= 0.5.1 +PLUGN_VERSION ?= 0.8.2 +PROCFILE_VERSION ?= 0.14.1 +SIGIL_VERSION ?= 0.8.1 +SSHCOMMAND_VERSION ?= 0.15.0 +DOCKER_IMAGE_LABELER_URL ?= https://github.com/dokku/docker-image-labeler/releases/download/v${DOCKER_IMAGE_LABELER_VERSION}/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_linux_amd64.tgz +NETRC_URL ?= https://github.com/dokku/netrc/releases/download/v${NETRC_VERSION}/netrc_${NETRC_VERSION}_linux_amd64.tgz +PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v${PLUGN_VERSION}/plugn_${PLUGN_VERSION}_linux_amd64.tgz +PROCFILE_UTIL_URL ?= https://github.com/josegonzalez/go-procfile-util/releases/download/v${PROCFILE_VERSION}/procfile-util_${PROCFILE_VERSION}_linux_amd64.tgz +SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz SSHCOMMAND_URL ?= https://github.com/dokku/sshcommand/releases/download/v${SSHCOMMAND_VERSION}/sshcommand_${SSHCOMMAND_VERSION}_linux_x86_64.tgz STACK_URL ?= https://github.com/gliderlabs/herokuish.git PREBUILT_STACK_URL ?= gliderlabs/herokuish:latest-20 @@ -155,22 +155,27 @@ man-db: docker-image-labeler: wget -qO /tmp/docker-image-labeler_latest.tgz ${DOCKER_IMAGE_LABELER_URL} tar xzf /tmp/docker-image-labeler_latest.tgz -C /usr/local/bin + mv /usr/local/bin/docker-image-labeler-amd64 /usr/local/bin/docker-image-labeler netrc: wget -qO /tmp/netrc_latest.tgz ${NETRC_URL} tar xzf /tmp/netrc_latest.tgz -C /usr/local/bin + mv /usr/local/bin/netrc-amd64 /usr/local/bin/netrc procfile-util: wget -qO /tmp/procfile-util_latest.tgz ${PROCFILE_UTIL_URL} tar xzf /tmp/procfile-util_latest.tgz -C /usr/local/bin + mv /usr/local/bin/procfile-util-amd64 /usr/local/bin/procfile-util plugn: wget -qO /tmp/plugn_latest.tgz ${PLUGN_URL} tar xzf /tmp/plugn_latest.tgz -C /usr/local/bin + mv /usr/local/bin/plugn-amd64 /usr/local/bin/plugn sigil: wget -qO /tmp/sigil_latest.tgz ${SIGIL_URL} tar xzf /tmp/sigil_latest.tgz -C /usr/local/bin + mv /usr/local/bin/gliderlabs-sigil-amd64 /usr/local/bin/sigil sshcommand: wget -qO /tmp/sshcommand_latest.tgz ${SSHCOMMAND_URL} diff --git a/contrib/release-dokku b/contrib/release-dokku index 42bceb339..c918c659d 100755 --- a/contrib/release-dokku +++ b/contrib/release-dokku @@ -354,16 +354,17 @@ fn-build-docker-image() { if [[ "$IS_RELEASE" == "true" ]]; then docker buildx build \ - --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ + --platform linux/arm,linux/arm64,linux/amd64 \ --progress plain \ --push \ --tag "dokku/dokku:latest" \ --tag "dokku/dokku:$VERSION" . else docker buildx build \ - --platform linux/arm/v7,linux/arm64/v8,linux/amd64 \ + --platform linux/arm,linux/arm64,linux/amd64 \ --progress plain \ - --tag "dokku/dokku:$VERSION" . + --tag "dokku/dokku:latest" \ + --tag "dokku/dokku:$(echo "$VERSION" | tr + -)" . fi } @@ -422,6 +423,8 @@ main() { fn-build-docker-image "$NEXT_VERSION" "$IS_RELEASE" || log-fail "Error building docker image" fn-repo-push-tags "$IS_RELEASE" + else + fn-build-docker-image "$NEXT_VERSION" "$IS_RELEASE" || log-fail "Error building docker image" fi if [[ "$IS_RELEASE" != "true" ]]; then diff --git a/deb.mk b/deb.mk index 049df7f73..9d1382bb6 100644 --- a/deb.mk +++ b/deb.mk @@ -49,4 +49,4 @@ endif cp debian/lintian-overrides /tmp/build-dokku/usr/share/lintian/overrides/dokku sed -i.bak "s/^Version: .*/Version: `cat /tmp/build-dokku/var/lib/dokku/STABLE_VERSION`/g" /tmp/build-dokku/DEBIAN/control && rm /tmp/build-dokku/DEBIAN/control.bak dpkg-deb --build /tmp/build-dokku "$(BUILD_DIRECTORY)/dokku_`cat /tmp/build-dokku/var/lib/dokku/VERSION`_$(DOKKU_ARCHITECTURE).deb" - lintian "$(BUILD_DIRECTORY)/dokku_`cat /tmp/build-dokku/var/lib/dokku/VERSION`_$(DOKKU_ARCHITECTURE).deb" + lintian "$(BUILD_DIRECTORY)/dokku_`cat /tmp/build-dokku/var/lib/dokku/VERSION`_$(DOKKU_ARCHITECTURE).deb" || true diff --git a/tests/ci/setup.sh b/tests/ci/setup.sh index 5a5760649..8ac196f3e 100755 --- a/tests/ci/setup.sh +++ b/tests/ci/setup.sh @@ -35,7 +35,7 @@ install_dependencies() { SSHCOMMAND_VERSION=$(grep SSHCOMMAND_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3) SSHCOMMAND_PACKAGE_NAME="sshcommand_${SSHCOMMAND_VERSION}_amd64.deb" if [[ ! -f "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" ]]; then - curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/bionic/sshcommand_${SSHCOMMAND_VERSION}_amd64.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" + curl -L "https://packagecloud.io/dokku/dokku/packages/ubuntu/bionic/sshcommand_${SSHCOMMAND_VERSION}_all.deb/download.deb" -o "$ROOT_DIR/build/${SSHCOMMAND_PACKAGE_NAME}" fi SIGIL_VERSION=$(grep SIGIL_VERSION "${ROOT_DIR}/Makefile" | head -n1 | cut -d' ' -f3)