mirror of
https://github.com/Kong/insomnia
synced 2024-11-08 06:39:48 +00:00
Build Linux on 14.04 again (except for Snap)
This commit is contained in:
parent
7ac74469a3
commit
47aef7f9c9
@ -14,8 +14,9 @@ matrix:
|
|||||||
- sudo mv docker-compose /usr/local/bin
|
- sudo mv docker-compose /usr/local/bin
|
||||||
before_deploy:
|
before_deploy:
|
||||||
- python -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
|
- python -c 'import os,sys,fcntl; flags = fcntl.fcntl(sys.stdout, fcntl.F_GETFL); fcntl.fcntl(sys.stdout, fcntl.F_SETFL, flags&~os.O_NONBLOCK);'
|
||||||
- docker-compose build package
|
- docker-compose build
|
||||||
- docker-compose run package
|
- docker-compose run package14
|
||||||
|
- docker-compose run package16
|
||||||
- os: osx
|
- os: osx
|
||||||
env:
|
env:
|
||||||
- CSC_LINK=$MAC_CSC_LINK
|
- CSC_LINK=$MAC_CSC_LINK
|
||||||
|
77
Dockerfile
77
Dockerfile
@ -1,77 +0,0 @@
|
|||||||
FROM ubuntu:16.04
|
|
||||||
|
|
||||||
# Install core deps
|
|
||||||
RUN apt-get update && apt-get upgrade -y
|
|
||||||
RUN apt-get install -y \
|
|
||||||
build-essential \
|
|
||||||
autoconf \
|
|
||||||
libtool \
|
|
||||||
pkg-config \
|
|
||||||
snapcraft \
|
|
||||||
wget
|
|
||||||
|
|
||||||
# Install Node and app-related dependencies
|
|
||||||
RUN wget -O- https://deb.nodesource.com/setup_10.x | bash - \
|
|
||||||
&& apt-get install -y nodejs graphicsmagick icnsutils
|
|
||||||
|
|
||||||
# Build zlib from source (for Curl)
|
|
||||||
RUN wget -q https://github.com/madler/zlib/archive/v1.2.11.tar.gz -O ./zlib.tar.gz \
|
|
||||||
&& mkdir -p /src/zlib /build/zlib \
|
|
||||||
&& tar -xvf zlib.tar.gz -C /src/zlib --strip 1 \
|
|
||||||
&& cd /src/zlib \
|
|
||||||
&& ./configure --prefix=/build/zlib \
|
|
||||||
&& make \
|
|
||||||
&& make install \
|
|
||||||
&& ldconfig
|
|
||||||
|
|
||||||
# Build OpenSSL from source (for Curl)
|
|
||||||
RUN wget -q https://github.com/openssl/openssl/archive/OpenSSL_1_1_0h.tar.gz -O ./openssl.tar.gz \
|
|
||||||
&& mkdir -p /src/openssl /build/openssl \
|
|
||||||
&& tar -xvf openssl.tar.gz -C /src/openssl --strip 1 \
|
|
||||||
&& cd /src/openssl \
|
|
||||||
&& ./config no-shared --static --prefix=/build/openssl --openssldir=/build/openssl \
|
|
||||||
&& make \
|
|
||||||
&& make install \
|
|
||||||
&& ldconfig
|
|
||||||
|
|
||||||
# Build nghttp2 from source (for Curl)
|
|
||||||
RUN wget -q https://github.com/nghttp2/nghttp2/releases/download/v1.31.1/nghttp2-1.31.1.tar.gz -O ./nghttp2.tar.gz \
|
|
||||||
&& mkdir -p /src/nghttp2 /build/nghttp2 \
|
|
||||||
&& tar -xvf nghttp2.tar.gz -C /src/nghttp2 --strip 1 \
|
|
||||||
&& cd /src/nghttp2 \
|
|
||||||
&& CFLAGS="-fPIC" ./configure --enable-lib-only --disable-shared --prefix=/build/nghttp2 \
|
|
||||||
&& make \
|
|
||||||
&& make install \
|
|
||||||
&& ldconfig
|
|
||||||
|
|
||||||
# Build Curl from source
|
|
||||||
RUN wget -q https://github.com/curl/curl/releases/download/curl-7_61_1/curl-7.61.1.tar.gz -O ./curl.tar.gz \
|
|
||||||
&& mkdir -p /src/curl \
|
|
||||||
&& tar -xvf curl.tar.gz -C /src/curl --strip 1 \
|
|
||||||
&& cd /src/curl \
|
|
||||||
&& ./buildconf \
|
|
||||||
&& LIBS="-ldl" CPPFLAGS="-I/build/openssl/include" LDFLAGS="-L/build/openssl/lib" \
|
|
||||||
./configure \
|
|
||||||
--disable-shared \
|
|
||||||
--enable-static \
|
|
||||||
--with-ssl=/build/openssl \
|
|
||||||
--with-nghttp2=/build/nghttp2 \
|
|
||||||
--with-zlib=/build/zlib \
|
|
||||||
--enable-ipv6 \
|
|
||||||
--enable-unix-sockets \
|
|
||||||
&& make \
|
|
||||||
&& make install \
|
|
||||||
&& ldconfig \
|
|
||||||
&& curl --version
|
|
||||||
|
|
||||||
# Setup dirs
|
|
||||||
ADD . /src/insomnia
|
|
||||||
WORKDIR /src/insomnia
|
|
||||||
VOLUME /src/insomnia/packages/insomnia-app/dist
|
|
||||||
|
|
||||||
# Install root project dependencies
|
|
||||||
RUN npm run bootstrap \
|
|
||||||
&& npm install --no-save 7zip-bin-linux app-builder-bin-linux
|
|
||||||
|
|
||||||
# Define build command
|
|
||||||
CMD npm run app-package
|
|
@ -1,8 +1,22 @@
|
|||||||
version: '3'
|
version: '3'
|
||||||
services:
|
services:
|
||||||
package:
|
package_linux:
|
||||||
build: .
|
build:
|
||||||
|
context: '.'
|
||||||
|
dockerfile: './docker/Dockerfile.Ubuntu14'
|
||||||
environment:
|
environment:
|
||||||
- 'NODELIBCURL_BUILD_STATIC=yes'
|
- 'NODELIBCURL_BUILD_STATIC=yes'
|
||||||
|
- 'BUILD_TARGETS=AppImage,deb,tar.gz'
|
||||||
|
- 'KEEP_DIST_FOLDER=yes'
|
||||||
|
volumes:
|
||||||
|
- ./packages/insomnia-app/dist:/src/insomnia/packages/insomnia-app/dist
|
||||||
|
package_snap:
|
||||||
|
build:
|
||||||
|
context: '.'
|
||||||
|
dockerfile: './docker/Dockerfile.Ubuntu16'
|
||||||
|
environment:
|
||||||
|
- 'NODELIBCURL_BUILD_STATIC=yes'
|
||||||
|
- 'BUILD_TARGETS=snap'
|
||||||
|
- 'KEEP_DIST_FOLDER=yes'
|
||||||
volumes:
|
volumes:
|
||||||
- ./packages/insomnia-app/dist:/src/insomnia/packages/insomnia-app/dist
|
- ./packages/insomnia-app/dist:/src/insomnia/packages/insomnia-app/dist
|
||||||
|
15
docker/Dockerfile.Ubuntu14
Normal file
15
docker/Dockerfile.Ubuntu14
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM ubuntu:14.04
|
||||||
|
|
||||||
|
ADD docker/install-dependencies.sh /scripts/install-dependencies.sh
|
||||||
|
RUN /scripts/install-dependencies.sh
|
||||||
|
|
||||||
|
# Setup dirs
|
||||||
|
ADD . /src/insomnia
|
||||||
|
WORKDIR /src/insomnia
|
||||||
|
VOLUME /src/insomnia/packages/insomnia-app/dist
|
||||||
|
|
||||||
|
ADD docker/bootstrap.sh /scripts/bootstrap.sh
|
||||||
|
RUN /scripts/bootstrap.sh
|
||||||
|
|
||||||
|
# Define build command
|
||||||
|
CMD npm run app-package
|
15
docker/Dockerfile.Ubuntu16
Normal file
15
docker/Dockerfile.Ubuntu16
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM ubuntu:16.04
|
||||||
|
|
||||||
|
ADD docker/install-dependencies.sh /scripts/install-dependencies.sh
|
||||||
|
RUN /scripts/install-dependencies.sh && apt-get install -y snapcraft
|
||||||
|
|
||||||
|
# Setup dirs
|
||||||
|
ADD . /src/insomnia
|
||||||
|
WORKDIR /src/insomnia
|
||||||
|
VOLUME /src/insomnia/packages/insomnia-app/dist
|
||||||
|
|
||||||
|
ADD docker/bootstrap.sh /scripts/bootstrap.sh
|
||||||
|
RUN /scripts/bootstrap.sh
|
||||||
|
|
||||||
|
# Define build command
|
||||||
|
CMD npm run app-package
|
9
docker/bootstrap.sh
Executable file
9
docker/bootstrap.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Fail on any errors
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install root project dependencies
|
||||||
|
npm run bootstrap
|
||||||
|
npm install --no-save 7zip-bin-linux app-builder-bin-linux
|
||||||
|
|
69
docker/install-dependencies.sh
Executable file
69
docker/install-dependencies.sh
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Fail on any errors
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Install core deps
|
||||||
|
apt-get update
|
||||||
|
apt-get upgrade -y
|
||||||
|
apt-get install -y \
|
||||||
|
build-essential \
|
||||||
|
autoconf \
|
||||||
|
libtool \
|
||||||
|
pkg-config \
|
||||||
|
libfontconfig1-dev \
|
||||||
|
wget
|
||||||
|
|
||||||
|
# Install Node and app-related dependencies
|
||||||
|
wget -O- https://deb.nodesource.com/setup_10.x | bash -
|
||||||
|
apt-get install -y nodejs graphicsmagick icnsutils
|
||||||
|
|
||||||
|
# Build zlib from source (for Curl)
|
||||||
|
wget -q https://github.com/madler/zlib/archive/v1.2.11.tar.gz -O ./zlib.tar.gz
|
||||||
|
mkdir -p /src/zlib /build/zlib
|
||||||
|
tar -xvf zlib.tar.gz -C /src/zlib --strip 1
|
||||||
|
cd /src/zlib
|
||||||
|
./configure --prefix=/build/zlib
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
# Build OpenSSL from source (for Curl)
|
||||||
|
wget -q https://github.com/openssl/openssl/archive/OpenSSL_1_1_0h.tar.gz -O ./openssl.tar.gz
|
||||||
|
mkdir -p /src/openssl /build/openssl
|
||||||
|
tar -xvf openssl.tar.gz -C /src/openssl --strip 1
|
||||||
|
cd /src/openssl
|
||||||
|
./config no-shared --static --prefix=/build/openssl --openssldir=/build/openssl
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
# Build nghttp2 from source (for Curl)
|
||||||
|
wget -q https://github.com/nghttp2/nghttp2/releases/download/v1.31.1/nghttp2-1.31.1.tar.gz -O ./nghttp2.tar.gz
|
||||||
|
mkdir -p /src/nghttp2 /build/nghttp2
|
||||||
|
tar -xvf nghttp2.tar.gz -C /src/nghttp2 --strip 1
|
||||||
|
cd /src/nghttp2
|
||||||
|
CFLAGS="-fPIC" ./configure --enable-lib-only --disable-shared --prefix=/build/nghttp2
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
ldconfig
|
||||||
|
|
||||||
|
# Build Curl from source
|
||||||
|
wget -q https://github.com/curl/curl/releases/download/curl-7_61_1/curl-7.61.1.tar.gz -O ./curl.tar.gz
|
||||||
|
mkdir -p /src/curl
|
||||||
|
tar -xvf curl.tar.gz -C /src/curl --strip 1
|
||||||
|
cd /src/curl
|
||||||
|
./buildconf
|
||||||
|
LIBS="-ldl" CPPFLAGS="-I/build/openssl/include" LDFLAGS="-L/build/openssl/lib" \
|
||||||
|
./configure \
|
||||||
|
--disable-shared \
|
||||||
|
--enable-static \
|
||||||
|
--with-ssl=/build/openssl \
|
||||||
|
--with-nghttp2=/build/nghttp2 \
|
||||||
|
--with-zlib=/build/zlib \
|
||||||
|
--enable-ipv6 \
|
||||||
|
--enable-unix-sockets
|
||||||
|
make
|
||||||
|
make install
|
||||||
|
ldconfig
|
||||||
|
curl --version
|
@ -25,7 +25,10 @@ if (require.main === module) {
|
|||||||
|
|
||||||
module.exports.start = async function() {
|
module.exports.start = async function() {
|
||||||
console.log('[package] Removing existing directories');
|
console.log('[package] Removing existing directories');
|
||||||
|
|
||||||
|
if (process.env.KEEP_DIST_FOLDER !== 'yes') {
|
||||||
await emptyDir('../dist/*');
|
await emptyDir('../dist/*');
|
||||||
|
}
|
||||||
|
|
||||||
console.log('[package] Packaging app');
|
console.log('[package] Packaging app');
|
||||||
await pkg('../.electronbuilder');
|
await pkg('../.electronbuilder');
|
||||||
@ -37,9 +40,14 @@ async function pkg(relConfigPath) {
|
|||||||
const configPath = path.resolve(__dirname, relConfigPath);
|
const configPath = path.resolve(__dirname, relConfigPath);
|
||||||
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
|
||||||
const targetPlatform = PLATFORM_MAP[process.platform];
|
const targetPlatform = PLATFORM_MAP[process.platform];
|
||||||
|
|
||||||
|
const target = process.env.BUILD_TARGETS
|
||||||
|
? process.env.BUILD_TARGETS.split(',')
|
||||||
|
: config[targetPlatform].target;
|
||||||
|
|
||||||
return electronBuilder.build({
|
return electronBuilder.build({
|
||||||
config,
|
config,
|
||||||
[targetPlatform]: config[targetPlatform].target
|
[targetPlatform]: target
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user