Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean /tmp and $TMPDIR in make clean #9150

Merged
merged 1 commit into from
Oct 18, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 22 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: nix-add-gcroots clean nix-clean disable-githooks react-native-android react-native-ios react-native-desktop test release _list _fix-node-perms
.PHONY: nix-add-gcroots clean nix-clean disable-githooks react-native-android react-native-ios react-native-desktop test release _list _fix-node-perms _tmpdir-mk _tmpdir-rm

help: SHELL := /bin/sh
help: ##@other Show this help
Expand Down Expand Up @@ -27,13 +27,18 @@ HELP_FUN = \
}
HOST_OS := $(shell uname | tr '[:upper:]' '[:lower:]')

# This can come from Jenkins
ifndef BUILD_TAG
export BUILD_TAG = $(shell git rev-parse --short HEAD)
endif

# Defines which variables will be kept for Nix pure shell, use semicolon as divider
export _NIX_KEEP ?= BUILD_ENV
export _NIX_KEEP ?= TMPDIR,BUILD_ENV
export NIX_CONF_DIR = $(PWD)/nix
# We don't want to use /run/user/$UID because it runs out of space too easilly
export TMPDIR = /tmp

export REACT_SERVER_PORT ?= 5001 # any value different from default 5000 will work; this has to be specified for both the Node.JS server process and the Qt process
export TMPDIR = /tmp/tmp-status-react-$(BUILD_TAG)
# this has to be specified for both the Node.JS server process and the Qt process
export REACT_SERVER_PORT ?= 5001

#----------------
# Nix targets
Expand Down Expand Up @@ -89,9 +94,19 @@ _fix-node-perms: ##@prepare Fix permissions so that directory can be cleaned
$(shell test -d node_modules && chmod -R 744 node_modules)
$(shell test -d node_modules.tmp && chmod -R 744 node_modules.tmp)

_tmpdir-mk: SHELL := /bin/sh
_tmpdir-mk: ##@prepare Create a TMPDIR for temporary files
@mkdir -p "$(TMPDIR)"
# Make sure TMPDIR exists every time make is called
-include _tmpdir-mk

_tmpdir-rm: SHELL := /bin/sh
_tmpdir-rm: ##@prepare Remove TMPDIR
rm -fr "$(TMPDIR)"

clean: SHELL := /bin/sh
clean: _fix-node-perms ##@prepare Remove all output folders
git clean -dxf -f
clean: _fix-node-perms _tmpdir-rm ##@prepare Remove all output folders
git clean -dxf

watchman-clean: export _NIX_ATTR := targets.watchman.shell
watchman-clean: ##@prepare Delete repo directory from watchman
Expand Down
61 changes: 31 additions & 30 deletions ci/Jenkinsfile.android
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ pipeline {
script { cmn.nix.shell('lein deps :tree', attr: 'targets.leiningen.shell') }
}
}
stage('Parallel') {
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
Expand All @@ -74,11 +74,6 @@ pipeline {
script { cmn.nix.shell('lein test-cljs', attr: 'targets.leiningen.shell') }
}
}
/* stage('Coverage') {
steps {
script { android.coverage() }
}
} */
} }
stage('Build') { stages {
stage('JSBundle') {
Expand All @@ -96,35 +91,41 @@ pipeline {
} }
}
}
stage('Archive') {
steps { script {
apks.each { archiveArtifacts it }
} }
}
stage('Upload') {
steps {
script {
def urls = apks.collect { cmn.uploadArtifact(it) }
/* return only the universal APK */
if (urls.size() > 1) {
env.PKG_URL = urls.find { it.contains('universal') }
} else { /* if no universal is available pick first */
env.PKG_URL = urls.first()
}
/* build type specific */
switch (btype) {
case 'release':
android.uploadToPlayStore(); break;
case 'nightly':
env.DIAWI_URL = android.uploadToDiawi(); break;
case 'e2e':
env.SAUCE_URL = android.uploadToSauceLabs(); break;
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps { script {
apks.each { archiveArtifacts it }
} }
}
stage('Upload') {
steps {
script {
def urls = apks.collect { cmn.uploadArtifact(it) }
/* return only the universal APK */
if (urls.size() > 1) {
env.PKG_URL = urls.find { it.contains('universal') }
} else { /* if no universal is available pick first */
env.PKG_URL = urls.first()
}
/* build type specific */
switch (btype) {
case 'release':
android.uploadToPlayStore(); break;
case 'nightly':
env.DIAWI_URL = android.uploadToDiawi(); break;
case 'e2e':
env.SAUCE_URL = android.uploadToSauceLabs(); break;
}
}
}
}
}
}
stage('Cleanup') {
steps { sh 'make clean' }
steps {
sh 'make clean'
}
}
}
post {
Expand Down
8 changes: 4 additions & 4 deletions ci/Jenkinsfile.combined
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ pipeline {
osx = cmn.ci.Build('status-react/combined/desktop-macos')
} } }
stage('Linux') { steps { script {
nix = cmn.ci.Build('status-react/combined/desktop-linux')
tux = cmn.ci.Build('status-react/combined/desktop-linux')
} } }
stage('Windows') { steps { script {
win = cmn.ci.Build('status-react/combined/desktop-windows')
Expand All @@ -55,7 +55,7 @@ pipeline {
sh('rm -f pkg/*')
if (btype != 'release') {
cmn.ci.copyArts(osx)
cmn.ci.copyArts(nix)
cmn.ci.copyArts(tux)
cmn.ci.copyArts(win)
}
cmn.ci.copyArts(ios)
Expand All @@ -78,7 +78,7 @@ pipeline {
iOS: cmn.pkgUrl(ios), /*iOSe2e: cmn.pkgUrl(iose2e),*/
Diawi: cmn.utils.getEnv(ios, 'DIAWI_URL'),
/* desktop */
App: cmn.pkgUrl(nix), Mac: cmn.pkgUrl(osx), Win: cmn.pkgUrl(win),
App: cmn.pkgUrl(tux), Mac: cmn.pkgUrl(osx), Win: cmn.pkgUrl(win),
/* upload the sha256 checksums file too */
SHA: cmn.uploadArtifact(cmn.utils.pkgFind('sha256')),
]
Expand All @@ -95,7 +95,7 @@ pipeline {
stage('Publish') {
steps { script {
switch (btype) {
case 'nightly': build('misc/status.im'); break
//case 'nightly': build('misc/status.im'); break
case 'release': gh.publishReleaseMobile(); break
}
} }
Expand Down
7 changes: 6 additions & 1 deletion ci/Jenkinsfile.fastlane.clean
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ pipeline {
LC_ALL = 'en_US.UTF-8'
TARGET_OS = 'ios'
FASTLANE_DISABLE_COLORS = 1
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
/* avoid writing to r/o /nix */
GEM_HOME = '~/.rubygems'
}

options {
Expand All @@ -25,7 +29,8 @@ pipeline {
nix = load('ci/nix.groovy')
nix.shell(
'bundle install --gemfile=fastlane/Gemfile',
attr: 'targets.mobile.fastlane.shell')
attr: 'targets.mobile.fastlane.shell'
)
} }
}
stage('Clean Users'){
Expand Down
37 changes: 21 additions & 16 deletions ci/Jenkinsfile.ios
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ pipeline {
LANGUAGE = "en_US.UTF-8"
TARGET_OS = 'ios'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
NIX_IGNORE_SYMLINK_STORE = 1 // https://github.com/NixOS/nix/issues/2925#issuecomment-499544039
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
FASTLANE_DISABLE_COLORS = 1
BUNDLE_PATH = "${HOME}/.bundle"
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
Expand All @@ -49,7 +50,7 @@ pipeline {
}
}
}
stage('Parallel') {
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
Expand Down Expand Up @@ -77,20 +78,24 @@ pipeline {
} }
}
}
stage('Archive') {
steps {
archiveArtifacts api
}
}
stage('Upload') {
steps {
script {
env.PKG_URL = cmn.uploadArtifact(api)
/* e2e builds get tested in SauceLabs */
if (btype == 'e2e') {
env.SAUCE_URL = ios.uploadToSauceLabs()
} else {
env.DIAWI_URL = ios.uploadToDiawi()
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts api
}
}
stage('Upload') {
steps {
script {
env.PKG_URL = cmn.uploadArtifact(api)
/* e2e builds get tested in SauceLabs */
if (btype == 'e2e') {
env.SAUCE_URL = ios.uploadToSauceLabs()
} else {
env.DIAWI_URL = ios.uploadToDiawi()
}
}
}
}
}
Expand Down
22 changes: 13 additions & 9 deletions ci/Jenkinsfile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ pipeline {
}
}
}
stage('Parallel') {
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
Expand Down Expand Up @@ -86,14 +86,18 @@ pipeline {
} }
}
}
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(app) }
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(app) }
}
}
}
}
stage('Cleanup') {
Expand Down
25 changes: 15 additions & 10 deletions ci/Jenkinsfile.macos
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ pipeline {
LANGUAGE = "en_US.UTF-8"
TARGET_OS = 'macos'
NIX_CONF_DIR = "${env.WORKSPACE}/nix"
NIX_IGNORE_SYMLINK_STORE = 1 // https://github.com/NixOS/nix/issues/2925#issuecomment-499544039
/* See nix/README.md */
NIX_IGNORE_SYMLINK_STORE = 1
VERBOSE_LEVEL = '3'
/* We use EXECUTOR_NUMBER to avoid multiple instances clashing */
LEIN_HOME = "/var/tmp/lein-${EXECUTOR_NUMBER}"
Expand All @@ -50,7 +51,7 @@ pipeline {
}
}
}
stage('Parallel') {
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
Expand Down Expand Up @@ -83,14 +84,18 @@ pipeline {
} }
}
}
stage('Archive') {
steps {
archiveArtifacts dmg
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(dmg) }
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts dmg
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(dmg) }
}
}
}
}
stage('Cleanup') {
Expand Down
22 changes: 13 additions & 9 deletions ci/Jenkinsfile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ pipeline {
}
}
}
stage('Parallel') {
stage('Parallel Assemble') {
parallel {
stage('Checks') { stages {
stage('Lint') {
Expand Down Expand Up @@ -89,14 +89,18 @@ pipeline {
} }
}
}
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(app) }
stage('Parallel Upload') {
parallel {
stage('Archive') {
steps {
archiveArtifacts app
}
}
stage('Upload') {
steps {
script { env.PKG_URL = cmn.uploadArtifact(app) }
}
}
}
}
stage('Cleanup') {
Expand Down
Loading