Commit 72ab8598 authored by Thomas Hartmann's avatar Thomas Hartmann
Browse files

Merge branch 'auto_dist' into 'main'

Automate distribution

See merge request thht/plus_sync!10
parents abdd23a8 5b99eab2
Loading
Loading
Loading
Loading
Loading
+73 −3
Original line number Diff line number Diff line
@@ -2,12 +2,18 @@ default:
  image: debian:latest
  before_script: |
    apt-get update
    apt-get install -y curl git build-essential rclone
    apt-get install -y curl git build-essential rclone jq
    curl -fsSL https://pixi.sh/install.sh | bash
    export PATH=$PATH:/root/.pixi/bin
    curl -L https://coveralls.io/coveralls-linux.tar.gz | tar -xz -C /usr/local/bin

stages:
  - test
  - build
  - deploy

test:
  stage: test
  script: |
    pixi run ruff_ci
    pixi run test
@@ -15,3 +21,67 @@ test:
  rules:
    - if: $CI_MERGE_REQUEST_ID
    - if: $CI_COMMIT_BRANCH == 'main'
    - if: $CI_COMMIT_TAG

build:
  stage: build
  dependencies:
    - test
  script: |
    pixi run build
  rules:
    - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+$/
    - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/
    - if: $CI_MERGE_REQUEST_ID
    - if: $CI_COMMIT_BRANCH == 'main'

  artifacts:
    paths:
      - dist/

publish-test:
  stage: deploy
  dependencies:
    - build
  id_tokens:
    TESTPYPI_ID_TOKEN:
      # Use "testpypi" if uploading to TestPyPI
      aud: testpypi
  script:
    - oidc_token=$(pixi run python -m id TESTPYPI)
    - echo "${oidc_token}"
    # Replace "https://pypi.org/*" with "https://test.pypi.org/*" if uploading to TestPyPI
    - resp=$(curl -X POST https://test.pypi.org/_/oidc/mint-token -d "{\"token\":\"${oidc_token}\"}")
    - echo "${resp}"
    - api_token=$(jq --raw-output '.token' <<< "${resp}")
    - echo "${api_token}"
    - pixi run hatch -v publish --repo test --user __token__ --auth "${api_token}"

  rules:
    - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+\.dev[0-9]+$/

  environment:
    name: pypi staging

publish:
  stage: deploy
  dependencies:
    - build
  id_tokens:
    PYPI_ID_TOKEN:
      aud: pypi
  script:
    - oidc_token=$(pixi run python -m id PYPI)
    - echo "${oidc_token}"
    # Replace "https://pypi.org/*" with "https://test.pypi.org/*" if uploading to TestPyPI
    - resp=$(curl -X POST https://pypi.org/_/oidc/mint-token -d "{\"token\":\"${oidc_token}\"}")
    - echo "${resp}"
    - api_token=$(jq --raw-output '.token' <<< "${resp}")
    - echo "${api_token}"
    - pixi run hatch -v publish --user __token__ --auth "${api_token}"

  rules:
    - if: $CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/

  environment:
    name: pypi
 No newline at end of file
+54 −1
Original line number Diff line number Diff line
@@ -139,13 +139,17 @@ environments:
      - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.19.2-pyhd8ed1ab_0.conda
      - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.22.0-py312h5b18bf6_1.conda
      - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
      - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/e0/44/827b2a91a5816512fcaf3cc4ebc465ccd5d598c45cefa6703fcf4a79018f/attrs-23.2.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/51/b4/51f8a8110319adbe8ef25ba63c4069511ba4474014abdf644afa1adbba31/attrs_strict-1.0.1-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/97/00/21e34b365b895e6faf9cc5d4e7b97dd419e08f8a7df119792ec206b4a3fa/bcrypt-4.1.3-cp39-abi3-manylinux_2_28_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/b3/0d/cd4a4071c7f38385dc5ba91286723b4d1090b87815db48216212c6c6c30e/cattrs-23.2.3-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/02/fa/08afa3775e935dca3ae78ed77ac3d54d10eddc103074a64805b7412792ad/id-1.4.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/91/29/df4b9b42f2be0b623cbd5e2140cafcaa2bef0759a00b7b70104dcfe2fb51/joblib-1.4.2-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/ad/50/8792484502c8141c20c996b802fefa8435a9c018a2bb440a06b172782118/paramiko-3.4.0-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/1f/fa/b7f815b8c9ad021c07f88875b601222ef5e70619391ade4a49234d12d278/pydantic-2.8.2-py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/09/b3/a5a54b47cccd1ab661ed5775235c5e06924753c2d4817737c5667bfa19a8/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
      - pypi: https://files.pythonhosted.org/packages/5c/07/a66ce67849514133361887636e0ca187e894bca241686adedd414a06cb50/pytest_sftpserver-1.3.0-py2.py3-none-any.whl
      - pypi: https://files.pythonhosted.org/packages/77/60/85b2a3377104f582ee34299a6ca54187bb6a8deb769baab3010c3a708eff/python_gitlab-4.7.0-py3-none-any.whl
@@ -188,6 +192,14 @@ packages:
  purls: []
  size: 23621
  timestamp: 1650670423406
- kind: pypi
  name: annotated-types
  version: 0.7.0
  url: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
  sha256: 1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53
  requires_dist:
  - typing-extensions>=4.0.0 ; python_version < '3.9'
  requires_python: '>=3.8'
- kind: conda
  name: anyio
  version: 4.4.0
@@ -913,6 +925,27 @@ packages:
  - pkg:pypi/hyperlink?source=conda-forge-mapping
  size: 72732
  timestamp: 1610092261086
- kind: pypi
  name: id
  version: 1.4.0
  url: https://files.pythonhosted.org/packages/02/fa/08afa3775e935dca3ae78ed77ac3d54d10eddc103074a64805b7412792ad/id-1.4.0-py3-none-any.whl
  sha256: a0391117c98fa9851ebd2b22df0dc6fd6aacbd89a4ec95c173f1311ca9bb7329
  requires_dist:
  - pydantic
  - requests
  - build ; extra == 'dev'
  - bump>=1.3.2 ; extra == 'dev'
  - id[test,lint] ; extra == 'dev'
  - bandit ; extra == 'lint'
  - interrogate ; extra == 'lint'
  - mypy ; extra == 'lint'
  - ruff<0.4.2 ; extra == 'lint'
  - types-requests ; extra == 'lint'
  - pytest ; extra == 'test'
  - pytest-cov ; extra == 'test'
  - pretend ; extra == 'test'
  - coverage[toml] ; extra == 'test'
  requires_python: '>=3.8'
- kind: conda
  name: identify
  version: 2.6.0
@@ -1817,7 +1850,7 @@ packages:
  name: plus-sync
  version: 0.2.0.dev0
  path: .
  sha256: f85324734066f914625d0d9fcf1b2ac25ee1b2936d047903099be3f9e61ca7c1
  sha256: d22744485412952d17036c2f7d0e69f5fb20f19c798675ba55e13fa3f415c67d
  requires_dist:
  - attrs
  - attrs-strict
@@ -1941,6 +1974,26 @@ packages:
  - pkg:pypi/pycparser?source=conda-forge-mapping
  size: 105098
  timestamp: 1711811634025
- kind: pypi
  name: pydantic
  version: 2.8.2
  url: https://files.pythonhosted.org/packages/1f/fa/b7f815b8c9ad021c07f88875b601222ef5e70619391ade4a49234d12d278/pydantic-2.8.2-py3-none-any.whl
  sha256: 73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8
  requires_dist:
  - annotated-types>=0.4.0
  - pydantic-core==2.20.1
  - typing-extensions>=4.12.2 ; python_version >= '3.13'
  - typing-extensions>=4.6.1 ; python_version < '3.13'
  - email-validator>=2.0.0 ; extra == 'email'
  requires_python: '>=3.8'
- kind: pypi
  name: pydantic-core
  version: 2.20.1
  url: https://files.pythonhosted.org/packages/09/b3/a5a54b47cccd1ab661ed5775235c5e06924753c2d4817737c5667bfa19a8/pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  sha256: 26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e
  requires_dist:
  - typing-extensions>=4.6.0,!=4.7.0
  requires_python: '>=3.8'
- kind: conda
  name: pygments
  version: 2.18.0
+1 −1
Original line number Diff line number Diff line
__version__ = '0.2.0.dev0'
__version__ = '0.2.1'
+1 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ platforms = ["linux-64"]
[tool.pixi.pypi-dependencies]
plus_sync = { path = ".", editable = true }
pytest-sftpserver = "*"
id = "*"

[tool.pixi.tasks]
test = "pytest --cov=plus_sync --cov-report=lcov"