mirror of
https://github.com/tmate-io/tmate.git
synced 2025-06-20 01:27:45 +02:00
Refactor static builds
This commit is contained in:
parent
e5f6e68fad
commit
bfa3c104d7
1
.gitignore
vendored
1
.gitignore
vendored
@ -25,3 +25,4 @@ downloads/
|
|||||||
ext/
|
ext/
|
||||||
libssh-*/
|
libssh-*/
|
||||||
msgpack-*/
|
msgpack-*/
|
||||||
|
releases/
|
||||||
|
@ -20,7 +20,7 @@ script:
|
|||||||
# On arch=arm64, some directories are not setup correctly, and 'ruby -S gem
|
# On arch=arm64, some directories are not setup correctly, and 'ruby -S gem
|
||||||
# install dpl' required by the release push scripts fails.
|
# install dpl' required by the release push scripts fails.
|
||||||
- 'if [ "$TRAVIS_TAG" ]; then sudo chown -R $USER: /var/lib/gems /usr/local/bin; fi'
|
- 'if [ "$TRAVIS_TAG" ]; then sudo chown -R $USER: /var/lib/gems /usr/local/bin; fi'
|
||||||
- 'if [ "$TRAVIS_TAG" ]; then ./package_release.sh $TRAVIS_TAG $PLATFORM; fi'
|
- 'if [ "$TRAVIS_TAG" ]; then ./build_static_release.sh $TRAVIS_TAG $PLATFORM; fi'
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
provider: releases
|
provider: releases
|
||||||
@ -29,7 +29,7 @@ deploy:
|
|||||||
skip_cleanup: true
|
skip_cleanup: true
|
||||||
overwrite: true
|
overwrite: true
|
||||||
file_glob: true
|
file_glob: true
|
||||||
file: /tmp/tmate-release/*.tar.*
|
file: releases/*.tar.*
|
||||||
on:
|
on:
|
||||||
repo: tmate-io/tmate
|
repo: tmate-io/tmate
|
||||||
branch: master
|
branch: master
|
||||||
|
@ -20,9 +20,10 @@ RUN set -ex; \
|
|||||||
make -j $(nproc); \
|
make -j $(nproc); \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
COPY . .
|
COPY compat ./compat
|
||||||
|
COPY *.c *.h autogen.sh Makefile.am configure.ac ./
|
||||||
|
|
||||||
RUN ./autogen.sh && ./configure --enable-static
|
RUN ./autogen.sh && ./configure --enable-static
|
||||||
RUN make -j $(nproc)
|
RUN make -j $(nproc)
|
||||||
RUN strip tmate
|
RUN objcopy --only-keep-debug tmate tmate.symbols && strip tmate
|
||||||
RUN ./tmate -V
|
RUN ./tmate -V
|
||||||
|
33
build_static_release.sh
Executable file
33
build_static_release.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -eux
|
||||||
|
|
||||||
|
# This is invoked by .travis.yml
|
||||||
|
|
||||||
|
VERSION=$1
|
||||||
|
PLATFORM=$2
|
||||||
|
|
||||||
|
SRC_VERSION=`cat configure.ac | grep AC_INIT | sed -E 's/^AC_INIT\(tmate, (.+)\)$/\1/'`
|
||||||
|
|
||||||
|
if [ $SRC_VERSION != $VERSION ]; then
|
||||||
|
echo "Version mismatch: $SRC_VERSION != $VERSION"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
RELEASE_NAME=tmate-$VERSION-static-linux-$PLATFORM
|
||||||
|
echo "Building $RELEASE_NAME"
|
||||||
|
|
||||||
|
docker build . --tag local-$PLATFORM/tmate-build --build-arg PLATFORM=$PLATFORM
|
||||||
|
|
||||||
|
mkdir -p releases
|
||||||
|
cd releases
|
||||||
|
|
||||||
|
rm -rf $RELEASE_NAME
|
||||||
|
mkdir -p $RELEASE_NAME
|
||||||
|
docker run --rm local-$PLATFORM/tmate-build cat tmate > $RELEASE_NAME/tmate
|
||||||
|
chmod +x $RELEASE_NAME/tmate
|
||||||
|
tar -cf - $RELEASE_NAME | xz > tmate-$VERSION-static-linux-$PLATFORM.tar.xz
|
||||||
|
|
||||||
|
rm -rf $RELEASE_NAME-symbols
|
||||||
|
mkdir -p $RELEASE_NAME-symbols
|
||||||
|
docker run --rm local-$PLATFORM/tmate-build cat tmate.symbols > $RELEASE_NAME-symbols/tmate.symbols
|
||||||
|
tar -cf - $RELEASE_NAME-symbols | xz > dbg-symbols-tmate-$VERSION-static-linux-$PLATFORM.tar.xz
|
@ -1,14 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -eux
|
|
||||||
VERSION=$1
|
|
||||||
PLATFORM=$2
|
|
||||||
RELEASE_NAME=tmate-$VERSION-static-linux-$PLATFORM
|
|
||||||
|
|
||||||
# This assumes the follow command has already been run:
|
|
||||||
# docker build . --tag local-$PLATFORM/tmate-build --build-arg PLATFORM=$PLATFORM
|
|
||||||
|
|
||||||
mkdir -p /tmp/tmate-release/$RELEASE_NAME
|
|
||||||
cd /tmp/tmate-release
|
|
||||||
docker run --rm local-$PLATFORM/tmate-build cat tmate > $RELEASE_NAME/tmate
|
|
||||||
chmod +x $RELEASE_NAME/tmate
|
|
||||||
tar -cf - $RELEASE_NAME | xz > tmate-$VERSION-static-linux-$PLATFORM.tar.xz
|
|
Loading…
x
Reference in New Issue
Block a user