Compare commits
	
		
			1 Commits
		
	
	
		
			aefd575539
			...
			yage/circl
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b7a86e9841 | 
| @@ -4,7 +4,14 @@ version: 2.1 | |||||||
| orbs: | orbs: | ||||||
|   python: circleci/python@2.1.1 |   python: circleci/python@2.1.1 | ||||||
|  |  | ||||||
|  |  | ||||||
| executors: | executors: | ||||||
|  |   archlinux: | ||||||
|  |     docker: | ||||||
|  |       - image: archlinux:base-devel | ||||||
|  |     resource_class: small | ||||||
|  |     working_directory: / | ||||||
|  |  | ||||||
|   python: |   python: | ||||||
|     docker: |     docker: | ||||||
|       - image: cimg/python:3.11 |       - image: cimg/python:3.11 | ||||||
| @@ -16,30 +23,125 @@ executors: | |||||||
|     resource_class: medium |     resource_class: medium | ||||||
|  |  | ||||||
|  |  | ||||||
| jobs: | commands: | ||||||
|   python-test: |   archlinux-run: | ||||||
|     executor: python |     description: execute command steps in the archlinux container from the CI user | ||||||
|     working_directory: ~/scwrypts/py/lib |     parameters: | ||||||
|  |       _name: | ||||||
|  |         type: string | ||||||
|  |       command: | ||||||
|  |         type: string | ||||||
|  |       working_directory: | ||||||
|  |         type: string | ||||||
|  |         default: /home/ci | ||||||
|     steps: |     steps: | ||||||
|       - checkout: |  | ||||||
|           path: ~/scwrypts |  | ||||||
|       - run: |       - run: | ||||||
|           name: pytest |           name: << parameters._name >> | ||||||
|  |           working_directory: << parameters.working_directory >> | ||||||
|  |           command: su ci -c '<< parameters.command >>' | ||||||
|  |  | ||||||
|  |  | ||||||
|  | custom: | ||||||
|  |   archlinux: | ||||||
|  |     prepare: | ||||||
|  |       - &archlinux_prepare | ||||||
|  |         run: | ||||||
|  |           name: prepare archlinux dependencies | ||||||
|  |           command: | | ||||||
|  |             pacman --noconfirm -Syu git openssh ca-certificates-utils | ||||||
|  |             useradd -m ci | ||||||
|  |             echo "ci ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers | ||||||
|  |  | ||||||
|  |     clone-aur: | ||||||
|  |       - &archlinux_clone_aur | ||||||
|  |         archlinux-run: | ||||||
|  |           _name: clone aur/scwrypts | ||||||
|  |           command: git clone https://aur.archlinux.org/scwrypts.git aur | ||||||
|  |  | ||||||
|  |     clone-scwrypts: | ||||||
|  |       - &archlinux_clone_scwrypts | ||||||
|  |         run: | ||||||
|  |           name: clone wrynegade/scwrypts | ||||||
|  |           working_directory: /home/ci | ||||||
|  |           command: | | ||||||
|  |             GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git clone -b "$CIRCLE_BRANCH" "$CIRCLE_REPOSITORY_URL" scwrypts | ||||||
|  |             chown -R ci:ci  ./scwrypts | ||||||
|  |  | ||||||
|  |  | ||||||
|  | jobs: | ||||||
|  |   require-full-semver: | ||||||
|  |     executor: python | ||||||
|  |     steps: | ||||||
|  |       - run: | ||||||
|  |           name: check CIRCLE_TAG for full semantic version | ||||||
|           command: | |           command: | | ||||||
|             : \ |             : \ | ||||||
|               && pip install . .[test] \ |                 && [ $CIRCLE_TAG ] \ | ||||||
|               && pytest \ |                 && [[ $CIRCLE_TAG =~ ^v[0-9]*.[0-9]*.[0-9]*$ ]] \ | ||||||
|               ; |                 ; | ||||||
|       - run: pip install build && python -m build |  | ||||||
|  |  | ||||||
|   python-publish: |   aur-test: | ||||||
|     executor: python |     executor: archlinux | ||||||
|     working_directory: ~/scwrypts/py/lib |  | ||||||
|     steps: |     steps: | ||||||
|       - checkout: |       - *archlinux_prepare | ||||||
|           path: ~/scwrypts |       - *archlinux_clone_aur | ||||||
|       - run: pip install build && python -m build |       - *archlinux_clone_scwrypts | ||||||
|       - run: pip install twine && twine upload dist/* |       - archlinux-run: | ||||||
|  |           _name: test aur build on current source | ||||||
|  |           working_directory: /home/ci/aur | ||||||
|  |           command: >- | ||||||
|  |             : | ||||||
|  |             && PKGVER=$(sed -n "s/^pkgver=//p" ./PKGBUILD) | ||||||
|  |             && cp -r ../scwrypts ../scwrypts-$PKGVER | ||||||
|  |             && rm -rf ../scwrypts-$PKGVER/.circleci | ||||||
|  |             && rm -rf ../scwrypts-$PKGVER/.git | ||||||
|  |             && rm -rf ../scwrypts-$PKGVER/.gitattributes | ||||||
|  |             && rm -rf ../scwrypts-$PKGVER/.gitignore | ||||||
|  |             && rm -rf ../scwrypts-$PKGVER/.github | ||||||
|  |             && tar -czf scwrypts.tar.gz ../scwrypts-$PKGVER | ||||||
|  |             && echo "source=(scwrypts.tar.gz)" >> PKGBUILD | ||||||
|  |             && echo "sha256sums=(SKIP)" >> PKGBUILD | ||||||
|  |             && makepkg --noconfirm -si | ||||||
|  |             && scwrypts --version | grep "^scwrypts v$PKGVER$" | ||||||
|  |             ; | ||||||
|  |  | ||||||
|  |   aur-publish: | ||||||
|  |     executor: archlinux | ||||||
|  |     steps: | ||||||
|  |       - *archlinux_prepare | ||||||
|  |       - *archlinux_clone_aur | ||||||
|  |       - archlinux-run: | ||||||
|  |           _name: update PKGBUILD and .SRCINFO | ||||||
|  |           working_directory: /home/ci/aur | ||||||
|  |           command: >- | ||||||
|  |             : | ||||||
|  |             && NEW_VERSION=$(echo $CIRCLE_TAG | sed 's/^v//') | ||||||
|  |             && NEW_VERSION=4.2.0 | ||||||
|  |             && sed "s/pkgver=.*/pkgver=$NEW_VERSION/; s/^pkgrel=.*/pkgrel=1/; /sha256sums/d" PKGBUILD -i | ||||||
|  |             && makepkg -g >> PKGBUILD | ||||||
|  |             && makepkg --printsrcinfo > .SRCINFO | ||||||
|  |             ; | ||||||
|  |       - archlinux-run: | ||||||
|  |           _name: sanity check for version build | ||||||
|  |           working_directory: /home/ci/aur | ||||||
|  |           command: >- | ||||||
|  |             : | ||||||
|  |             && makepkg --noconfirm -si | ||||||
|  |             && scwrypts --version | ||||||
|  |             && scwrypts --version | grep -q "^scwrypts $CIRCLE_TAG\$" | ||||||
|  |             ; | ||||||
|  |       - archlinux-run: | ||||||
|  |           _name: publish new version | ||||||
|  |           working_directory: /home/ci/aur | ||||||
|  |           command: >- | ||||||
|  |             : | ||||||
|  |             && git add PKGBUILD .SRCINFO | ||||||
|  |             && git -c user.email=yage@yage.io -c user.name=yage commit -am "$CIRCLE_TAG" | ||||||
|  |             && eval $(ssh-agent) | ||||||
|  |             && echo -e $SSH_KEY_PRIVATE__AUR | ssh-add - | ||||||
|  |             && git remote add upstream ssh://aur@aur.archlinux.org/scwrypts.git | ||||||
|  |             && echo 'DO THE GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git push upstream' | ||||||
|  |             ; | ||||||
|  |  | ||||||
|   nodejs-test: |   nodejs-test: | ||||||
|     executor: nodejs |     executor: nodejs | ||||||
| @@ -108,51 +210,68 @@ jobs: | |||||||
|               && pnpm publish --no-git-checks \ |               && pnpm publish --no-git-checks \ | ||||||
|               ; |               ; | ||||||
|  |  | ||||||
|  |   python-test: | ||||||
|  |     executor: python | ||||||
|  |     working_directory: ~/scwrypts/py/lib | ||||||
|  |     steps: | ||||||
|  |       - checkout: | ||||||
|  |           path: ~/scwrypts | ||||||
|  |       - run: | ||||||
|  |           name: pytest | ||||||
|  |           command: | | ||||||
|  |             : \ | ||||||
|  |               && pip install . .[test] \ | ||||||
|  |               && pytest \ | ||||||
|  |               ; | ||||||
|  |       - run: pip install build && python -m build | ||||||
|  |  | ||||||
|  |   python-publish: | ||||||
|  |     executor: python | ||||||
|  |     working_directory: ~/scwrypts/py/lib | ||||||
|  |     steps: | ||||||
|  |       - checkout: | ||||||
|  |           path: ~/scwrypts | ||||||
|  |       - run: pip install build && python -m build | ||||||
|  |       - run: pip install twine && twine upload dist/* | ||||||
|  |  | ||||||
|  |  | ||||||
| workflows: | workflows: | ||||||
|   python-dev: |   test: | ||||||
|     jobs: |     jobs: | ||||||
|       - python-test: |       - aur-test: | ||||||
|  |           &dev_filters | ||||||
|           filters: |           filters: | ||||||
|             branches: |             branches: | ||||||
|               ignore: /^main$/ |               ignore: /^main$/ | ||||||
|  |  | ||||||
|   python: |       - python-test: *dev_filters | ||||||
|  |       - nodejs-test: *dev_filters | ||||||
|  |  | ||||||
|  |   publish: | ||||||
|     jobs: |     jobs: | ||||||
|       - python-test: |       - require-full-semver: | ||||||
|           filters: |           filters: | ||||||
|             tags: |             tags: | ||||||
|               only: /^v\d+\.\d+\.\d+.*$/ |               only: /^v\d+\.\d+\.\d+.*$/ | ||||||
|             branches: |             branches: | ||||||
|               ignore: /^.*$/ |               ignore: /^.*$/ | ||||||
|  |  | ||||||
|  |       - aur-test: | ||||||
|  |           &only-publish-for-full-semver | ||||||
|  |           requires: [require-full-semver] | ||||||
|  |       - aur-publish: | ||||||
|  |           context: [aur-yage] | ||||||
|  |           requires: | ||||||
|  |             - aur-test | ||||||
|  |             - python-publish | ||||||
|  |             - nodejs-publish | ||||||
|  |  | ||||||
|  |       - python-test: *only-publish-for-full-semver | ||||||
|       - python-publish: |       - python-publish: | ||||||
|           requires: [python-test] |           requires: | ||||||
|           context: [pypi-yage] |             - python-test | ||||||
|           filters: |  | ||||||
|             tags: |  | ||||||
|               only: /^v\d+\.\d+\.\d+.*$/ |  | ||||||
|             branches: |  | ||||||
|               ignore: /^.*$/ |  | ||||||
|  |  | ||||||
|   nodejs-dev: |       - nodejs-test: *only-publish-for-full-semver | ||||||
|     jobs: |  | ||||||
|       - nodejs-test: |  | ||||||
|           filters: |  | ||||||
|             branches: |  | ||||||
|               ignore: /^main$/ |  | ||||||
|  |  | ||||||
|   nodejs: |  | ||||||
|     jobs: |  | ||||||
|       - nodejs-test: |  | ||||||
|           filters: |  | ||||||
|             tags: |  | ||||||
|               only: /^v\d+\.\d+\.\d+.*$/ |  | ||||||
|             branches: |  | ||||||
|               ignore: /^.*$/ |  | ||||||
|       - nodejs-publish: |       - nodejs-publish: | ||||||
|           requires: [nodejs-test] |           requires: | ||||||
|           context: [npm-wrynegade] |             - nodejs-test | ||||||
|           filters: |  | ||||||
|             tags: |  | ||||||
|               only: /^v\d+\.\d+\.\d+.*$/ |  | ||||||
|             branches: |  | ||||||
|               ignore: /^.*$/ |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user