Jenkins Builds - Mac (#1391)
* add jenkins mac builds * update build agent * add code signing detection in naming scheme * remove length checks * bugfixes, additional Jenkinsfiles
This commit is contained in:
parent
d21e4349ef
commit
8ac258eb89
|
@ -0,0 +1,24 @@
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
node {
|
||||||
|
label 'master'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Build') {
|
||||||
|
environment {
|
||||||
|
ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES = 1
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'rm -rf node_modules'
|
||||||
|
sh 'npm install'
|
||||||
|
sh 'npm run jenkins:build:mac'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Upload') {
|
||||||
|
steps {
|
||||||
|
sh 'npm run jenkins:upload'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -3,7 +3,7 @@ pipeline {
|
||||||
dockerfile {
|
dockerfile {
|
||||||
filename 'Dockerfile'
|
filename 'Dockerfile'
|
||||||
dir 'jenkins/Docker'
|
dir 'jenkins/Docker'
|
||||||
args '--env ETH_SIGNING_KEY=$ETH_SIGNING_KEY --env S3_BUCKET_NAME=$S3_BUCKET_NAME'
|
args '--env ETH_SIGNING_KEY=$ETH_SIGNING_KEY --env S3_BUCKET_NAME=$S3_BUCKET_NAME --env AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID --env AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stages {
|
stages {
|
|
@ -0,0 +1,26 @@
|
||||||
|
pipeline {
|
||||||
|
agent {
|
||||||
|
dockerfile {
|
||||||
|
filename 'Dockerfile'
|
||||||
|
dir 'jenkins/Docker'
|
||||||
|
args '--env ETH_SIGNING_KEY=$ETH_SIGNING_KEY --env S3_BUCKET_NAME=$S3_BUCKET_NAME --env AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID --env AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY --env CSC_LINK=$CSC_LINK --env CSC_KEY_PASSWORD=$CSC_KEY_PASSWORD'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stages {
|
||||||
|
stage('Build') {
|
||||||
|
environment {
|
||||||
|
ELECTRON_BUILDER_ALLOW_UNRESOLVED_DEPENDENCIES = 1
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
sh 'rm -rf node_modules'
|
||||||
|
sh 'npm install'
|
||||||
|
sh 'npm run jenkins:build:linux'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Upload') {
|
||||||
|
steps {
|
||||||
|
sh 'npm run jenkins:upload'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,7 +4,7 @@ const GIT_COMMIT_SHORT = GIT_COMMIT.substring(0, 7);
|
||||||
const JENKINS_BUILD_ID = process.env.BUILD_ID;
|
const JENKINS_BUILD_ID = process.env.BUILD_ID;
|
||||||
const LINUX_FILES = [`MyCrypto-${VERSION}-i386.AppImage`, `MyCrypto-${VERSION}-x86_64.AppImage`];
|
const LINUX_FILES = [`MyCrypto-${VERSION}-i386.AppImage`, `MyCrypto-${VERSION}-x86_64.AppImage`];
|
||||||
const WINDOWS_FILES = [`MyCrypto Setup ${VERSION}.exe`, `MyCrypto Setup ${VERSION}.exe.blockmap`];
|
const WINDOWS_FILES = [`MyCrypto Setup ${VERSION}.exe`, `MyCrypto Setup ${VERSION}.exe.blockmap`];
|
||||||
const OSX_FILES = [];
|
const OSX_FILES = [`MyCrypto-${VERSION}-mac.zip`, `MyCrypto-${VERSION}.dmg`, `MyCrypto-${VERSION}.dmg.blockmap`];
|
||||||
const FLAVOR = (() => {
|
const FLAVOR = (() => {
|
||||||
const { platform } = process;
|
const { platform } = process;
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ const FLAVOR = (() => {
|
||||||
})();
|
})();
|
||||||
const S3_BUCKET = process.env.S3_BUCKET_NAME;
|
const S3_BUCKET = process.env.S3_BUCKET_NAME;
|
||||||
const ETH_SIGNING_KEY = process.env.ETH_SIGNING_KEY;
|
const ETH_SIGNING_KEY = process.env.ETH_SIGNING_KEY;
|
||||||
|
const IS_CODE_SIGNING = process.env.CSC_LINK && process.env.CSC_KEY_PASSWORD;
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
VERSION,
|
VERSION,
|
||||||
|
@ -29,5 +30,6 @@ module.exports = {
|
||||||
OSX_FILES,
|
OSX_FILES,
|
||||||
FLAVOR,
|
FLAVOR,
|
||||||
S3_BUCKET,
|
S3_BUCKET,
|
||||||
ETH_SIGNING_KEY
|
ETH_SIGNING_KEY,
|
||||||
|
IS_CODE_SIGNING
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,9 +5,15 @@ const { spawn } = require('child_process');
|
||||||
|
|
||||||
const { hashPersonalMessage, ecsign, toBuffer, addHexPrefix } = require('ethereumjs-util');
|
const { hashPersonalMessage, ecsign, toBuffer, addHexPrefix } = require('ethereumjs-util');
|
||||||
|
|
||||||
const genCommitFilename = (name, version, commit, buildId) => {
|
const genCommitFilename = (name, version, commit, buildId, isCodeSigning) => {
|
||||||
|
const winRegex = /exe$/;
|
||||||
|
const macRegex = /dmg$/;
|
||||||
const split = name.split(version);
|
const split = name.split(version);
|
||||||
return `${split[0]}${version}-${commit}-${buildId}${split[1]}`;
|
const signed = winRegex.test(name) || macRegex.test(name)
|
||||||
|
? isCodeSigning ? '-signed' : '-unsigned'
|
||||||
|
: '';
|
||||||
|
|
||||||
|
return `${split[0]}${version}-${commit}-${buildId}${signed}${split[1]}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const genFileList = (linux, windows, osx) => {
|
const genFileList = (linux, windows, osx) => {
|
||||||
|
@ -70,10 +76,10 @@ const genSignatureFile = (manifestHash, pKeyString) => {
|
||||||
const genSignatureFilename = (flavor, version, commit, buildId) =>
|
const genSignatureFilename = (flavor, version, commit, buildId) =>
|
||||||
`manifest.${flavor}.v${version}.${commit}.${buildId}.signature`;
|
`manifest.${flavor}.v${version}.${commit}.${buildId}.signature`;
|
||||||
|
|
||||||
const genManifest = (fileList, version, jenkinsBuildId, gitCommit, gitCommitShort, s3Bucket) =>
|
const genManifest = (fileList, version, jenkinsBuildId, gitCommit, gitCommitShort, s3Bucket, isCodeSigning) =>
|
||||||
fileList.map(filename => {
|
fileList.map(filename => {
|
||||||
const fullPath = path.resolve('dist/electron-builds/', filename);
|
const fullPath = path.resolve('dist/electron-builds/', filename);
|
||||||
const commitFilename = genCommitFilename(filename, version, gitCommitShort, jenkinsBuildId);
|
const commitFilename = genCommitFilename(filename, version, gitCommitShort, jenkinsBuildId, isCodeSigning);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
fullPath,
|
fullPath,
|
||||||
|
|
|
@ -11,7 +11,8 @@ const {
|
||||||
OSX_FILES,
|
OSX_FILES,
|
||||||
S3_BUCKET,
|
S3_BUCKET,
|
||||||
JENKINS_BUILD_ID,
|
JENKINS_BUILD_ID,
|
||||||
ETH_SIGNING_KEY
|
ETH_SIGNING_KEY,
|
||||||
|
IS_CODE_SIGNING
|
||||||
} = require('./constants');
|
} = require('./constants');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
@ -35,7 +36,8 @@ const manifest = genManifest(
|
||||||
JENKINS_BUILD_ID,
|
JENKINS_BUILD_ID,
|
||||||
GIT_COMMIT,
|
GIT_COMMIT,
|
||||||
GIT_COMMIT_SHORT,
|
GIT_COMMIT_SHORT,
|
||||||
S3_BUCKET
|
S3_BUCKET,
|
||||||
|
IS_CODE_SIGNING
|
||||||
);
|
);
|
||||||
|
|
||||||
const manifestFile = genManifestFile(manifest);
|
const manifestFile = genManifestFile(manifest);
|
||||||
|
|
Loading…
Reference in New Issue