diff options
author | Jan Kohnert | 2021-01-30 16:22:33 +0100 |
---|---|---|
committer | Jan Kohnert | 2021-02-14 14:13:11 +0100 |
commit | a6ab9d751062871a173a4e09380c5ada14aec273 (patch) | |
tree | df12cc756891636baa85378c385c677a04de9b3b | |
parent | 6cf061c8a706b2345df2f834ff2fec2c4007780e (diff) | |
download | aur-a6ab9d751062871a173a4e09380c5ada14aec273.tar.gz |
Added CI/CD, fixed dependencies.
-rw-r--r-- | .SRCINFO | 5 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | .gitlab-ci.yml | 84 | ||||
-rw-r--r-- | Dockerfile.build_and_test | 9 | ||||
-rw-r--r-- | PKGBUILD | 26 |
5 files changed, 111 insertions, 14 deletions
@@ -1,18 +1,15 @@ pkgbase = eccodes pkgdesc = ECMWF decoding library for GRIB, BUFR and GTS pkgver = 2.20.0 - pkgrel = 1 + pkgrel = 2 url = https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home arch = i686 arch = x86_64 license = Apache makedepends = gcc-fortran - makedepends = python - makedepends = python-numpy makedepends = cmake depends = openjpeg depends = libpng - depends = python depends = netcdf optdepends = libaec: for compression optdepends = jasper: as an alternative to openjpeg diff --git a/.gitignore b/.gitignore index c87943cb9b69..0daffa4bb733 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ /* !.gitignore +!.gitlab-ci.yml !PKGBUILD !.SRCINFO diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000000..b66ce725790f --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,84 @@ +include: + - project: 'common/gitlab-helper' + ref: master + file: 'container-helper.yml' + - project: 'common/gitlab-helper' + ref: master + file: 'deploy-helper.yml' + +variables: + BUILD_AND_TEST_IMAGE: build_and_test + +workflow: + rules: + # don't create pipeline if the commit message starts with WIP + - if: $CI_COMMIT_MESSAGE =~ /^WIP/ + when: never + # don't create pipeline if we're merging from master or version branches + - if: $CI_MERGE_REQUEST_IID && $CI_COMMIT_REF_NAME =~ /^(master|VER_\d+_\d+)$/ + when: never + - if: $CI_MERGE_REQUEST_IID + - if: $CI_COMMIT_REF_NAME =~ /^(master|VER_\d+_\d+)$/ + - if: $CI_COMMIT_TAG + - if: $CI_PIPELINE_SOURCE =~ /^(trigger|pipeline|web|api|merge_request_event)$/ + +.rules_templates: + rules: + - if: &on_master $CI_COMMIT_REF_NAME =~ /^master$/ + +stages: + - prepareBuild + - build + - test + - deploy + +docker-build-and-test: + stage: prepareBuild + extends: .container-build-and-push + variables: + WORKING_DIR: ${CI_PROJECT_DIR} + DOCKERFILE_NAME: "Dockerfile.build_and_test" + IMAGE_NAME: ${CI_REGISTRY_IMAGE}/${BUILD_AND_TEST_IMAGE}:${CI_COMMIT_REF_NAME} + BUILD_ARGS: REGISTRY=${CI_REGISTRY} + needs: [] + +build-eccodes: + stage: build + image: ${CI_REGISTRY_IMAGE}/${BUILD_AND_TEST_IMAGE}:${CI_COMMIT_REF_NAME} + needs: + - job: "docker-build-and-test" + artifacts: no + artifacts: + name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}" + expire_in: 1 day + paths: + - eccodes*.pkg.tar.zst + script: + # We istalled only depends in the build-and-test image, + # build-depends need to installed here, so we're able to check + # the installed package is not dependent on any of the build libs/packages + - makepkg -s --noconfirm + +test-eccodes: + stage: test + image: ${CI_REGISTRY_IMAGE}/${BUILD_AND_TEST_IMAGE}:${CI_COMMIT_REF_NAME} + needs: ["build-eccodes"] + script: + # Recommended checks + - namcap -m PKGBUILD + - namcap -m eccodes*.pkg.tar.zst + # Try to install package + - sudo pacman -U --noconfirm eccodes*.pkg.tar.zst + +deploy-eccodes: + stage: deploy + extends: .git-ssh-push-remote + variables: + REMOTE_HOST: "aur.archlinux.org" + REMOTE_USER: "aur" + REMOTE_REPOSITORY: "eccodes.git" + before_script: + - echo "Uploading to AUR..." + rules: + - if: *on_master + when: manual diff --git a/Dockerfile.build_and_test b/Dockerfile.build_and_test new file mode 100644 index 000000000000..6ac1cfc93b00 --- /dev/null +++ b/Dockerfile.build_and_test @@ -0,0 +1,9 @@ +ARG REGISTRY + +FROM "$REGISTRY/common/gitlab-helper/archlinux-yay:master" + +RUN (\ + yay -Syuq --noconfirm --needed openjpeg libpng netcdf \ + && yes | yay -Scc --noconfirm \ + && sudo rm -rf /var/cache/pacman/pkg/* \ +) @@ -1,15 +1,16 @@ +# Maintainer: "Jan Kohnert <bughunter@jan-kohnert.de" # Contributor: Graziano Giuliani <graziano.giuliani@poste.it> pkgname=eccodes pkgver=2.20.0 _attnum=45757960 -pkgrel=1 +pkgrel=2 pkgdesc="ECMWF decoding library for GRIB, BUFR and GTS" arch=('i686' 'x86_64') url="https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home" license=('Apache') -depends=('openjpeg' 'libpng' 'python' 'netcdf') +depends=('openjpeg' 'libpng' 'netcdf') optdepends=('libaec: for compression' 'jasper: as an alternative to openjpeg') -makedepends=('gcc-fortran' 'python' 'python-numpy' 'cmake') +makedepends=('gcc-fortran' 'cmake') conflicts=('grib_api' 'libbufr-ecmwf') source=(http://software.ecmwf.int/wiki/download/attachments/${_attnum}/${pkgname}-${pkgver}-Source.tar.gz) sha512sums=('ea2953987c4713b230e6d75ad5ae1dbbeea2633d1caf60614ececfe2fabe07d7c794baf120f5df82716f37b2540f7f6a6cd82f04070a78bf65dc7d499ca50dc0') @@ -19,17 +20,22 @@ build() { sed -i 's/image.inmem_.*=.*1;//' src/grib_jasper_encoding.c mkdir -p build cd build - [ -x /usr/bin/aec ] && has_aec=1 || has_aec=0 + [ $(pacman -Qq libaec 2>/dev/null) ] && use_aec="ON" || use_aec="OFF" + [ $(pacman -Qq jasper 2>/dev/null) ] && use_jasper="ON" || use_jasper="OFF" cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=production \ -DCMAKE_INSTALL_DATAROOTDIR=/usr/share/$pkgname/definitions \ - -DCMAKE_INSTALL_DATADIR=/usr/share -DENABLE_AEC=$has_aec \ - -DENABLE_PNG=1 -DENABLE_ECCODES_THREADS=1 \ - -DOPENJPEG_INCLUDE_DIR=`pkg-config --variable=includedir libopenjpeg` \ - -DPYTHON_EXECUTABLE=/usr/bin/python3 .. - make || return 1 + -DCMAKE_INSTALL_DATADIR=/usr/share -DENABLE_AEC=$use_aec \ + -DENABLE_PNG=ON -DENABLE_ECCODES_THREADS=ON -DENABLE_JPG=ON \ + -DENABLE_JPG_LIBOPENJPEG=ON -DENABLE_JPG_LIBJASPER=$use_jasper .. + make +} + +check() { + cd "$srcdir"/${pkgname}-${pkgver}-Source/build + make test } package() { cd "$srcdir"/${pkgname}-${pkgver}-Source/build - make DESTDIR="$pkgdir" install || return 1 + make DESTDIR="$pkgdir" install } |