diff --git a/concourse/pipeline.yml b/concourse/pipeline.yml index 3a6f5c490..d4b7f5c3b 100644 --- a/concourse/pipeline.yml +++ b/concourse/pipeline.yml @@ -108,6 +108,14 @@ resources: secret_access_key: ((s3_secretkey)) region_name: ((s3_region)) regexp: sts4/vscode-extensions/snapshots/vscode-spring-boot-(.*).vsix +- name: s3-concourse-theia-snapshot + type: s3 + source: + bucket: ((s3_bucket)) + access_key_id: ((s3_accesskey)) + secret_access_key: ((s3_secretkey)) + region_name: ((s3_region)) + regexp: sts4/theia-extensions/snapshots/theia-concourse-(.*).tar - name: s3-manifest-yaml-fatjar-snapshot type: s3 source: @@ -377,6 +385,25 @@ jobs: only_tag: true tag_prefix: V_ tag: version/version +- name: build-concourse-theia-snapshot + plan: + - aggregate: + - get: sts4 + trigger: true + - get: maven-cache + - task: build-consourse-theia-snapshot + file: sts4/concourse/tasks/build-theia-package.yml + params: + extension_id: theia-concourse + on_failure: + put: slack-notification + params: + text: | + Concourse ${BUILD_PIPELINE_NAME}/${BUILD_JOB_NAME}/${BUILD_NAME} has failed! + - put: s3-concourse-theia-snapshot + params: + file: out/theia-concourse-*.tar + acl: public-read - name: promote-fatjars-to-rc serial: true plan: @@ -1116,6 +1143,9 @@ groups: - build-bosh-atom-package - build-manifest-yaml-atom-package - build-spring-boot-atom-package +- name: theia-snapshots + jobs: + - build-concourse-theia-snapshot - name: atom-release jobs: - atom-language-servers-test diff --git a/concourse/tasks/build-theia-package.sh b/concourse/tasks/build-theia-package.sh new file mode 100644 index 000000000..b05ca5a4c --- /dev/null +++ b/concourse/tasks/build-theia-package.sh @@ -0,0 +1,49 @@ +#!/bin/bash +set -e +workdir=`pwd` +sources=$workdir/sts4/theia-extensions/$extension_id +server_id=${extension_id#theia-} +ext_folder=$sources/$server_id + +if [ -d "maven-cache" ]; then + echo "Prepopulating maven cache" + tar xzf maven-cache/*.tar.gz -C ${HOME} +else + echo "!!!No stored maven cache found!!! " + echo "!!!This may slow down the build!!!" +fi + +cd "$sxt_folder" + +timestamp=`date -u +%Y%m%d%H%M` + +base_version=`jq -r .version package.json` +if [ "$dist_type" != release ]; then + # for snapshot build, work the timestamp into package.json version qualifier + qualified_version=${base_version}-${timestamp} + npm version ${qualified_version} + echo -e "\n\n*Version: ${qualified_version}*" >> README.md +else + echo -e "\n\n*Version: ${base_version}-RELEASE*" >> README.md +fi + +cd "$sources" +./build.sh +cd "$ext_folder" +yarn pack + +# for release build we don't don't add version-qualifier to package.json +# So we must instead rename the file ourself to add a qualifier +if [ "$dist_type" == release ]; then + tar_file=`ls *.tar` + release_name=`git tag --points-at HEAD | grep ${extension_id}` + echo "release_name=$release_name" + if [ -z "$release_name" ]; then + echo "Release Candidates must be tagged" >&2 + exit 1 + else + mv $tar_file ${release_name}.tar + fi +fi + +cp *.tar $workdir/out diff --git a/concourse/tasks/build-theia-package.yml b/concourse/tasks/build-theia-package.yml new file mode 100644 index 000000000..11626d5b5 --- /dev/null +++ b/concourse/tasks/build-theia-package.yml @@ -0,0 +1,12 @@ +inputs: +- name: sts4 +- name: maven-cache +outputs: +- name: out +platform: linux +image_resource: + type: docker-image + source: + repository: kdvolder/sts4-build-env +run: + path: sts4/concourse/tasks/build-theia-package.sh diff --git a/theia-extensions/theia-bosh/bosh/package.json b/theia-extensions/theia-bosh/bosh/package.json index e9ff32139..f6a246e63 100644 --- a/theia-extensions/theia-bosh/bosh/package.json +++ b/theia-extensions/theia-bosh/bosh/package.json @@ -6,7 +6,8 @@ "version": "0.0.0", "files": [ "lib", - "src" + "src", + "jars" ], "dependencies": { "@theia/core": "latest",