mirror of https://github.com/portainer/portainer
chore(build-system): add support for ppc64le architecture (#870)
parent
69c7f116b1
commit
a2e781fb3f
92
build.sh
92
build.sh
|
@ -1,5 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
ARCHIVE_BUILD_FOLDER="/tmp/portainer-builds"
|
||||
VERSION=$1
|
||||
|
||||
if [[ $# -ne 1 ]] ; then
|
||||
|
@ -7,57 +8,66 @@ if [[ $# -ne 1 ]] ; then
|
|||
exit 1
|
||||
fi
|
||||
|
||||
# parameters platform, architecture
|
||||
function build_and_push_images() {
|
||||
PLATFORM=$1
|
||||
ARCH=$2
|
||||
|
||||
docker build -t portainer/portainer:${PLATFORM}-${ARCH}-${VERSION} -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:${PLATFORM}-${ARCH}-${VERSION}
|
||||
docker build -t portainer/portainer:${PLATFORM}-${ARCH} -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:${PLATFORM}-${ARCH}
|
||||
}
|
||||
|
||||
# parameters: platform, architecture
|
||||
function build_archive() {
|
||||
PLATFORM=$1
|
||||
ARCH=$2
|
||||
|
||||
BUILD_FOLDER=${ARCHIVE_BUILD_FOLDER}/${PLATFORM}-${ARCH}
|
||||
|
||||
rm -rf ${BUILD_FOLDER} && mkdir -pv ${BUILD_FOLDER}/portainer
|
||||
mv dist/* ${BUILD_FOLDER}/portainer/
|
||||
cd ${BUILD_FOLDER}
|
||||
tar cvpfz portainer-${VERSION}-${PLATFORM}-${ARCH}.tar.gz portainer
|
||||
mv portainer-${VERSION}-${PLATFORM}-${ARCH}.tar.gz ${ARCHIVE_BUILD_FOLDER}/
|
||||
cd -
|
||||
}
|
||||
|
||||
mkdir -pv /tmp/portainer-builds
|
||||
|
||||
PLATFORM="linux"
|
||||
ARCH="amd64"
|
||||
grunt release
|
||||
docker build -t portainer/portainer:linux-amd64-${VERSION} -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-amd64-${VERSION}
|
||||
docker build -t portainer/portainer:linux-amd64 -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-amd64
|
||||
rm -rf /tmp/portainer-builds/unix && mkdir -pv /tmp/portainer-builds/unix/portainer
|
||||
mv dist/* /tmp/portainer-builds/unix/portainer
|
||||
cd /tmp/portainer-builds/unix
|
||||
tar cvpfz portainer-${VERSION}-linux-amd64.tar.gz portainer
|
||||
mv portainer-${VERSION}-linux-amd64.tar.gz /tmp/portainer-builds/
|
||||
cd -
|
||||
build_and_push_images ${PLATFORM} ${ARCH}
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
PLATFORM="linux"
|
||||
ARCH="arm"
|
||||
grunt release-arm
|
||||
docker build -t portainer/portainer:linux-arm-${VERSION} -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-arm-${VERSION}
|
||||
docker build -t portainer/portainer:linux-arm -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-arm
|
||||
rm -rf /tmp/portainer-builds/arm && mkdir -pv /tmp/portainer-builds/arm/portainer
|
||||
mv dist/* /tmp/portainer-builds/arm/portainer
|
||||
cd /tmp/portainer-builds/arm
|
||||
tar cvpfz portainer-${VERSION}-linux-arm.tar.gz portainer
|
||||
mv portainer-${VERSION}-linux-arm.tar.gz /tmp/portainer-builds/
|
||||
cd -
|
||||
build_and_push_images ${PLATFORM} ${ARCH}
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
PLATFORM="linux"
|
||||
ARCH="arm64"
|
||||
grunt release-arm64
|
||||
docker build -t portainer/portainer:linux-arm64-${VERSION} -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-arm64-${VERSION}
|
||||
docker build -t portainer/portainer:linux-arm64 -f build/linux/Dockerfile .
|
||||
docker push portainer/portainer:linux-arm64
|
||||
rm -rf /tmp/portainer-builds/arm64 && mkdir -pv /tmp/portainer-builds/arm64/portainer
|
||||
mv dist/* /tmp/portainer-builds/arm64/portainer
|
||||
cd /tmp/portainer-builds/arm64
|
||||
tar cvpfz portainer-${VERSION}-linux-arm64.tar.gz portainer
|
||||
mv portainer-${VERSION}-linux-arm64.tar.gz /tmp/portainer-builds/
|
||||
cd -
|
||||
build_and_push_images ${PLATFORM} ${ARCH}
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
PLATFORM="linux"
|
||||
ARCH="ppc64le"
|
||||
grunt release-ppc64le
|
||||
build_and_push_images ${PLATFORM} ${ARCH}
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
PLATFORM="darwin"
|
||||
ARCH="amd64"
|
||||
grunt release-macos
|
||||
rm -rf /tmp/portainer-builds/darwin && mkdir -pv /tmp/portainer-builds/darwin/portainer
|
||||
mv dist/* /tmp/portainer-builds/darwin/portainer
|
||||
cd /tmp/portainer-builds/darwin
|
||||
tar cvpfz portainer-${VERSION}-darwin-amd64.tar.gz portainer
|
||||
mv portainer-${VERSION}-darwin-amd64.tar.gz /tmp/portainer-builds/
|
||||
cd -
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
PLATFORM="windows"
|
||||
ARCH="amd64"
|
||||
grunt release-win
|
||||
rm -rf /tmp/portainer-builds/win && mkdir -pv /tmp/portainer-builds/win/portainer
|
||||
cp -r dist/* /tmp/portainer-builds/win/portainer
|
||||
cd /tmp/portainer-builds/win
|
||||
tar cvpfz portainer-${VERSION}-windows-amd64.tar.gz portainer
|
||||
mv portainer-${VERSION}-windows-amd64.tar.gz /tmp/portainer-builds/
|
||||
build_archive ${PLATFORM} ${ARCH}
|
||||
|
||||
exit 0
|
||||
|
|
47
gruntfile.js
47
gruntfile.js
|
@ -118,6 +118,23 @@ module.exports = function (grunt) {
|
|||
'usemin',
|
||||
'clean:tmp'
|
||||
]);
|
||||
grunt.registerTask('release-ppc64le', [
|
||||
'config:prod',
|
||||
'clean:all',
|
||||
'if:unixPpc64leBinaryNotExist',
|
||||
'html2js',
|
||||
'useminPrepare:release',
|
||||
'recess:build',
|
||||
'concat',
|
||||
'clean:tmpl',
|
||||
'cssmin',
|
||||
'replace',
|
||||
'uglify',
|
||||
'copy',
|
||||
'filerev',
|
||||
'usemin',
|
||||
'clean:tmp'
|
||||
]);
|
||||
grunt.registerTask('lint', ['eslint']);
|
||||
grunt.registerTask('run', ['if:unixBinaryNotExist', 'build', 'shell:buildImage', 'shell:run']);
|
||||
grunt.registerTask('run-swarm', ['if:unixBinaryNotExist', 'build', 'shell:buildImage', 'shell:runSwarm', 'watch:buildSwarm']);
|
||||
|
@ -383,14 +400,22 @@ module.exports = function (grunt) {
|
|||
'mv api/cmd/portainer/portainer-linux-arm dist/portainer'
|
||||
].join(' && ')
|
||||
},
|
||||
buildUnixArm64Binary: {
|
||||
command: [
|
||||
'docker run --rm -v $(pwd)/api:/src -e BUILD_GOOS="linux" -e BUILD_GOARCH="arm64" portainer/golang-builder:cross-platform /src/cmd/portainer',
|
||||
'shasum api/cmd/portainer/portainer-linux-arm64 > portainer-checksum.txt',
|
||||
'mkdir -p dist',
|
||||
'mv api/cmd/portainer/portainer-linux-arm64 dist/portainer'
|
||||
].join(' && ')
|
||||
},
|
||||
buildUnixArm64Binary: {
|
||||
command: [
|
||||
'docker run --rm -v $(pwd)/api:/src -e BUILD_GOOS="linux" -e BUILD_GOARCH="arm64" portainer/golang-builder:cross-platform /src/cmd/portainer',
|
||||
'shasum api/cmd/portainer/portainer-linux-arm64 > portainer-checksum.txt',
|
||||
'mkdir -p dist',
|
||||
'mv api/cmd/portainer/portainer-linux-arm64 dist/portainer'
|
||||
].join(' && ')
|
||||
},
|
||||
buildUnixPpc64leBinary: {
|
||||
command: [
|
||||
'docker run --rm -v $(pwd)/api:/src -e BUILD_GOOS="linux" -e BUILD_GOARCH="ppc64le" portainer/golang-builder:cross-platform /src/cmd/portainer',
|
||||
'shasum api/cmd/portainer/portainer-linux-ppc64le > portainer-checksum.txt',
|
||||
'mkdir -p dist',
|
||||
'mv api/cmd/portainer/portainer-linux-ppc64le dist/portainer'
|
||||
].join(' && ')
|
||||
},
|
||||
buildDarwinBinary: {
|
||||
command: [
|
||||
'docker run --rm -v $(pwd)/api:/src -e BUILD_GOOS="darwin" -e BUILD_GOARCH="amd64" portainer/golang-builder:cross-platform /src/cmd/portainer',
|
||||
|
@ -458,6 +483,12 @@ module.exports = function (grunt) {
|
|||
},
|
||||
ifFalse: ['shell:buildUnixArm64Binary']
|
||||
},
|
||||
unixPpc64leBinaryNotExist: {
|
||||
options: {
|
||||
executable: 'dist/portainer'
|
||||
},
|
||||
ifFalse: ['shell:buildUnixPpc64leBinary']
|
||||
},
|
||||
darwinBinaryNotExist: {
|
||||
options: {
|
||||
executable: 'dist/portainer'
|
||||
|
|
Loading…
Reference in New Issue