kopia lustrzana https://gitlab.com/gridtracker.org/gridtracker
Clean up packaging
- Add optional support for CI/CD uploading to AWS S3 in addition to GCS. - Package linux images as .tar.bz instead of .zip, and change layout - Comment out unused stages in gridtracker.spec to quiet things.Canadian-Provinces-Territories-Award-Layer
rodzic
9cb858ba62
commit
5855adf7c4
|
@ -5,15 +5,24 @@ variables:
|
||||||
DEFAULT_IMAGE: debian:stable
|
DEFAULT_IMAGE: debian:stable
|
||||||
APT_CACHE_DIR: $CI_PROJECT_DIR/.cache/apt
|
APT_CACHE_DIR: $CI_PROJECT_DIR/.cache/apt
|
||||||
NPM_CONFIG_CACHE: $CI_PROJECT_DIR/.cache/npm
|
NPM_CONFIG_CACHE: $CI_PROJECT_DIR/.cache/npm
|
||||||
|
|
||||||
|
#
|
||||||
|
# We have code in here for releasing on both GS and S3, control it through variables
|
||||||
|
# on GitLab, do not change it in this file.
|
||||||
|
#
|
||||||
GCLOUD_SERVICE_ACCOUNT: /dev/null
|
GCLOUD_SERVICE_ACCOUNT: /dev/null
|
||||||
GCLOUD_RELEASE_DEPLOY_PATH: gs://download.gridtracker.org/release/$CI_COMMIT_TAG
|
GCLOUD_RELEASE_DEPLOY_PATH: gs://download.gridtracker.org/release/$CI_COMMIT_TAG
|
||||||
GCLOUD_TESTING_DEPLOY_PATH: gs://download.gridtracker.org/testing/$CI_COMMIT_TAG
|
GCLOUD_TESTING_DEPLOY_PATH: gs://download.gridtracker.org/testing/$CI_COMMIT_TAG
|
||||||
|
AWS_ACCESS_KEY_ID: ""
|
||||||
|
AWS_SECRET_ACCESS_KEY: ""
|
||||||
|
AWS_DEFAULT_REGION: ""
|
||||||
|
AWS_RELEASE_DEPLOY_PATH: s3://download.gridtracker.org/release/$CI_COMMIT_TAG
|
||||||
|
AWS_TESTING_DEPLOY_PATH: s3://download.gridtracker.org/testing/$CI_COMMIT_TAG
|
||||||
|
|
||||||
# nothing in this file should be allowed to run automatically except for:
|
# nothing in this file ill be allowed to run automatically except for:
|
||||||
# 1. merge requests
|
# 1. merge requests
|
||||||
# 2. manual tagging
|
# 2. manual tagging
|
||||||
# 3. committing to the default branch
|
# 3. committing to the default branch
|
||||||
|
|
||||||
include:
|
include:
|
||||||
- template: "Workflows/MergeRequest-Pipelines.gitlab-ci.yml"
|
- template: "Workflows/MergeRequest-Pipelines.gitlab-ci.yml"
|
||||||
|
|
||||||
|
@ -75,7 +84,8 @@ packaging:
|
||||||
- echo "Building native packages"
|
- echo "Building native packages"
|
||||||
- npm install --prefer-offline
|
- npm install --prefer-offline
|
||||||
- npm run dist
|
- npm run dist
|
||||||
- (cd dist ; mv *.zip *.exe *.7z *.json ../build)
|
- for dir in dist/*-linux-* ; do if [ -d $dir ] ; then tar -C dist -cjf ${dir}.tar.bz `basename $dir` ; fi ; done
|
||||||
|
- (cd dist ; mv *.exe *.mac-x64.zip *.tar.bz ../build)
|
||||||
- echo "Building Debian packages"
|
- echo "Building Debian packages"
|
||||||
- dpkg-buildpackage -uc -us
|
- dpkg-buildpackage -uc -us
|
||||||
- mv ../*.{deb,dsc,buildinfo,tar.xz,changes} build/debian/
|
- mv ../*.{deb,dsc,buildinfo,tar.xz,changes} build/debian/
|
||||||
|
@ -84,29 +94,43 @@ packaging:
|
||||||
- mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm build/rpm
|
- mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm build/rpm
|
||||||
|
|
||||||
# copy the assets over to our distribution storage (testing, tag = test_.*)
|
# copy the assets over to our distribution storage (testing, tag = test_.*)
|
||||||
upload_testing:
|
gs_upload_testing:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: google/cloud-sdk:alpine
|
image: google/cloud-sdk:alpine
|
||||||
needs:
|
|
||||||
- job: packaging
|
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_TAG =~ /^(test_).*/'
|
- if: '$CI_COMMIT_TAG =~ /^(test_).*/ && $GCLOUD_SERVICE_ACCOUNT != "/dev/null"'
|
||||||
script:
|
script:
|
||||||
- gcloud auth activate-service-account --key-file $GCLOUD_SERVICE_ACCOUNT
|
- gcloud auth activate-service-account --key-file $GCLOUD_SERVICE_ACCOUNT
|
||||||
- cd build; gsutil -m rsync -r . $GCLOUD_TESTING_DEPLOY_PATH
|
- cd build; gsutil -m rsync -r . $GCLOUD_TESTING_DEPLOY_PATH
|
||||||
|
|
||||||
# copy the assets over to our distribution storage (full release, tag = v.*)
|
# copy the assets over to our distribution storage (full release, tag = v.*)
|
||||||
upload_release:
|
gs_upload_release:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
image: google/cloud-sdk:alpine
|
image: google/cloud-sdk:alpine
|
||||||
needs:
|
|
||||||
- job: packaging
|
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_TAG =~ /^(v).*/'
|
- if: '$CI_COMMIT_TAG =~ /^(v).*/ && $GCLOUD_SERVICE_ACCOUNT != "/dev/null"'
|
||||||
script:
|
script:
|
||||||
- gcloud auth activate-service-account --key-file $GCLOUD_SERVICE_ACCOUNT
|
- gcloud auth activate-service-account --key-file $GCLOUD_SERVICE_ACCOUNT
|
||||||
- cd build; gsutil -m rsync -r . $GCLOUD_RELEASE_DEPLOY_PATH
|
- cd build; gsutil -m rsync -r . $GCLOUD_RELEASE_DEPLOY_PATH
|
||||||
|
|
||||||
|
# copy the assets over to our distribution storage (testing, tag = test_.*)
|
||||||
|
s3_upload_testing:
|
||||||
|
stage: deploy
|
||||||
|
image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^(test_).*/ && $AWS_ACCESS_KEY_ID != ""'
|
||||||
|
script:
|
||||||
|
- cd build; aws s3 sync . $AWS_TESTING_DEPLOY_PATH
|
||||||
|
|
||||||
|
# copy the assets over to our distribution storage (full release, tag = v.*)
|
||||||
|
s3_upload_release:
|
||||||
|
stage: deploy
|
||||||
|
image: registry.gitlab.com/gitlab-org/cloud-deploy/aws-base:latest
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^(v).*/ && $AWS_ACCESS_KEY_ID != ""'
|
||||||
|
script:
|
||||||
|
- cd build; aws s3 sync . $AWS_RELEASE_DEPLOY_PATH
|
||||||
|
|
||||||
# this only creates a "source code release" -- gitlab doesn't specify binaries
|
# this only creates a "source code release" -- gitlab doesn't specify binaries
|
||||||
# except as links to external storage, which is suboptimal for now
|
# except as links to external storage, which is suboptimal for now
|
||||||
source_release:
|
source_release:
|
||||||
|
|
|
@ -7,6 +7,11 @@ mv ../*.{deb,dsc,buildinfo,changes,tar.xz} ../dist/debian
|
||||||
debian/rules clean
|
debian/rules clean
|
||||||
npm install
|
npm install
|
||||||
npm run dist
|
npm run dist
|
||||||
mv dist/*.{exe,7z,zip,json} ../dist
|
for dir in dist/*-linux-* ; do
|
||||||
|
if [ -d $dir ] ; then
|
||||||
|
tar -C dist -cjf ${dir}.tar.bz `basename $dir`
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
mv dist/*{.exe,mac-x64.zip,.tar.bz} ../dist
|
||||||
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.spec
|
rpmbuild -D "version `node ./version.js`" --build-in-place -bb gridtracker.spec
|
||||||
mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm ../dist/rpm
|
mv $HOME/rpmbuild/RPMS/noarch/gridtracker-*.noarch.rpm ../dist/rpm
|
||||||
|
|
|
@ -31,11 +31,11 @@ make
|
||||||
%install
|
%install
|
||||||
make install DESTDIR=${RPM_BUILD_ROOT}
|
make install DESTDIR=${RPM_BUILD_ROOT}
|
||||||
|
|
||||||
%check
|
# %check
|
||||||
# desktop-file-validate desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
|
# desktop-file-validate desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
|
||||||
|
|
||||||
%clean
|
# %clean
|
||||||
make clean
|
# make clean
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{_bindir}/%{name}
|
%{_bindir}/%{name}
|
||||||
|
|
Ładowanie…
Reference in New Issue