2 Commits

Author SHA1 Message Date
f0c94b62bf WIP 2
All checks were successful
run tests / check (push) Successful in 27s
run tests / release (push) Successful in 18s
2025-12-11 11:34:05 +01:00
c33b8aae0c WIP
All checks were successful
run tests / check (push) Successful in 27s
run tests / release (push) Successful in 19s
2025-12-11 10:56:28 +01:00
10 changed files with 36 additions and 55 deletions

View File

@@ -135,7 +135,7 @@ jobs:
- uses: ./add-artefact - uses: ./add-artefact
with: with:
type: wheel type: wheel
filename: "test-assets/wheels/*.whl" pattern: "test-assets/wheels/*.whl"
- uses: ./add-artefact - uses: ./add-artefact
with: with:

View File

@@ -18,7 +18,7 @@ inputs:
filename: filename:
required: false required: false
description: "required for tarball, sdist, wheel" description: "required for tarball, sdist"
default: "" default: ""
package_name: package_name:
@@ -26,6 +26,11 @@ inputs:
description: "required for tarball" description: "required for tarball"
default: "" default: ""
pattern:
required: false
description: "required for wheel"
default: ""
directory: directory:
required: false required: false
description: "required for npm" description: "required for npm"
@@ -49,6 +54,7 @@ runs:
--artefact-name "${{ inputs.name }}" \ --artefact-name "${{ inputs.name }}" \
--artefact-filename "${{ inputs.filename }}" \ --artefact-filename "${{ inputs.filename }}" \
--artefact-package-name "${{ inputs.package_name }}" \ --artefact-package-name "${{ inputs.package_name }}" \
--artefact-pattern "${{ inputs.pattern }}" \
--artefact-directory "${{ inputs.directory }}" \ --artefact-directory "${{ inputs.directory }}" \
--version-descriptor "${{ inputs.version_descriptor }}" \ --version-descriptor "${{ inputs.version_descriptor }}" \
--write-env-vars-to-filename "$GITHUB_ENV" --write-env-vars-to-filename "$GITHUB_ENV"

View File

@@ -41,7 +41,7 @@ inputs:
artefact_filename: artefact_filename:
required: false required: false
description: "required for tarball, sdist, wheel" description: "required for tarball, sdist"
default: "" default: ""
artefact_package_name: artefact_package_name:
@@ -49,6 +49,11 @@ inputs:
description: "required for tarball" description: "required for tarball"
default: "" default: ""
artefact_pattern:
required: false
description: "required for wheel"
default: ""
artefact_directory: artefact_directory:
required: false required: false
description: "required for npm" description: "required for npm"
@@ -124,6 +129,7 @@ runs:
--artefact-name "${{ inputs.artefact_name }}" \ --artefact-name "${{ inputs.artefact_name }}" \
--artefact-filename "${{ inputs.artefact_filename }}" \ --artefact-filename "${{ inputs.artefact_filename }}" \
--artefact-package-name "${{ inputs.artefact_package_name }}" \ --artefact-package-name "${{ inputs.artefact_package_name }}" \
--artefact-pattern "${{ inputs.artefact_pattern }}" \
--artefact-directory "${{ inputs.artefact_directory }}" \ --artefact-directory "${{ inputs.artefact_directory }}" \
--version-descriptor "${{ inputs.artefact_version_descriptor }}" --version-descriptor "${{ inputs.artefact_version_descriptor }}"
fi fi

View File

@@ -4,23 +4,6 @@ description: "dump current project description"
runs: runs:
using: composite using: composite
steps: steps:
- name: declare project if neccessary
run: |
if [[ ! -z "${RELEASE_PROJECT_CURRENT_VERSION}" ]]; then
echo "already set up."
exit 0
fi
nix run ${{ github.action_path }} -- \
declare \
--release-yaml-filename ".gitea/release.yaml" \
--gitea-instance "https://gitea.puzzleyou.net" \
--release-repository-name "${{ github.repository }}" \
--release-ref-name "${{ github.ref_name }}" \
--release-run-number "${{ github.run_number }}" \
--release-commit-sha "${{ github.sha }}" \
--write-env-vars-to-filename "$GITHUB_ENV"
- name: dump project description - name: dump project description
run: | run: |
nix run ${{ github.action_path }} -- \ nix run ${{ github.action_path }} -- \

View File

@@ -82,7 +82,7 @@ def dump_project_description(project_description: ProjectDescription):
print(' release version name: %s' % release_info.version_str) print(' release version name: %s' % release_info.version_str)
elif isinstance(generated, Wheel): elif isinstance(generated, Wheel):
print(' - wheel: %s' % generated.filename) print(' - wheel: %s' % generated.pattern)
print(' repository: %s' % generated.repository) print(' repository: %s' % generated.repository)
print(' release version name: %s' % release_info.version_str) print(' release version name: %s' % release_info.version_str)
@@ -152,6 +152,7 @@ def make_artefact(type: str,
name: str, name: str,
filename: str, filename: str,
package_name: str, package_name: str,
pattern: str,
directory: str, directory: str,
version_descriptor) -> ArtefactDescription: version_descriptor) -> ArtefactDescription:
@@ -171,8 +172,8 @@ def make_artefact(type: str,
**maybe_repository) **maybe_repository)
elif type == 'wheel': elif type == 'wheel':
assert filename is not None assert pattern is not None
generated = Wheel(filename=filename, **maybe_repository) generated = Wheel(pattern=pattern, **maybe_repository)
elif type == 'sdist': elif type == 'sdist':
assert filename is not None assert filename is not None
@@ -296,6 +297,7 @@ def main_cli():
parser.add_argument('--artefact-name', type=nullable_string) parser.add_argument('--artefact-name', type=nullable_string)
parser.add_argument('--artefact-package-name', type=nullable_string) parser.add_argument('--artefact-package-name', type=nullable_string)
parser.add_argument('--artefact-filename', type=nullable_string) parser.add_argument('--artefact-filename', type=nullable_string)
parser.add_argument('--artefact-pattern', type=nullable_string)
parser.add_argument('--artefact-directory', type=nullable_string) parser.add_argument('--artefact-directory', type=nullable_string)
parser.add_argument('--deployment-type', parser.add_argument('--deployment-type',
@@ -357,6 +359,7 @@ def main_cli():
args.artefact_name, args.artefact_name,
args.artefact_filename, args.artefact_filename,
args.artefact_package_name, args.artefact_package_name,
args.artefact_pattern,
args.artefact_directory, args.artefact_directory,
args.version_descriptor) args.version_descriptor)

View File

@@ -97,14 +97,14 @@ class Tarball:
@dataclass(frozen=True) @dataclass(frozen=True)
class WheelReleaseInfo: class WheelReleaseInfo:
filename: str pattern: str
repository: str repository: str
version_str: str version_str: str
@dataclass(frozen=True) @dataclass(frozen=True)
class Wheel: class Wheel:
filename: str pattern: str
repository: str = DEFAULT_PYPI_REPOSITORY_NAME repository: str = DEFAULT_PYPI_REPOSITORY_NAME
def make_environment_variables(self, context, version): def make_environment_variables(self, context, version):
@@ -112,7 +112,7 @@ class Wheel:
def make_release_info(self, context: ReleaseContext, version: Version): def make_release_info(self, context: ReleaseContext, version: Version):
return WheelReleaseInfo( return WheelReleaseInfo(
filename=self.filename, pattern=self.pattern,
repository=self.repository, repository=self.repository,
version_str=python_version_str(version)) version_str=python_version_str(version))
@@ -327,8 +327,8 @@ def parse_project_description(obj):
**optional(tar, 'repository')) **optional(tar, 'repository'))
def parse_wheel(whl): def parse_wheel(whl):
assert 'filename' in whl assert 'pattern' in whl
return Wheel(filename=whl['filename'], return Wheel(pattern=whl['pattern'],
**optional(whl, 'repository')) **optional(whl, 'repository'))
def parse_sdist(sdist): def parse_sdist(sdist):

View File

@@ -84,7 +84,7 @@ def publish_wheel(info: WheelReleaseInfo, cli: Cli):
'upload', 'upload',
'--verbose', '--verbose',
'--repository', info.repository, '--repository', info.repository,
info.filename) info.pattern)
print() print()

View File

@@ -19,10 +19,10 @@ artefacts:
repository: balls repository: balls
- type: wheel - type: wheel
filename: './scratch/wheels/*.whl' pattern: './scratch/wheels/*.whl'
- type: wheel - type: wheel
filename: './scratch/wheels/*.whl' pattern: './scratch/wheels/*.whl'
repository: other repository: other
- type: sdist - type: sdist

View File

@@ -30,7 +30,7 @@ class TestProjectDescription(TestCase):
version_descriptor='src/python/Cargo.toml', version_descriptor='src/python/Cargo.toml',
artefacts=[ artefacts=[
ArtefactDescription( ArtefactDescription(
generated=Wheel(filename='./scratch/wheels/*.whl')) generated=Wheel(pattern='./scratch/wheels/*.whl'))
]) ])
# productdesignerd # productdesignerd
@@ -55,7 +55,7 @@ class TestProjectDescription(TestCase):
ArtefactDescription( ArtefactDescription(
generated=OciImage(name='masa-images')), generated=OciImage(name='masa-images')),
ArtefactDescription( ArtefactDescription(
generated=Wheel(filename='./scratch/wheels/*.whl')) generated=Wheel(pattern='./scratch/wheels/*.whl'))
], ],
deployments=[ deployments=[
DeploymentDescription( DeploymentDescription(
@@ -134,7 +134,7 @@ class TestProjectDescription(TestCase):
artefacts=[ artefacts=[
ArtefactDescription( ArtefactDescription(
version_descriptor='src/python/pyproject.toml', version_descriptor='src/python/pyproject.toml',
generated=Wheel(filename='./scratch/wheels/*.whl')), generated=Wheel(pattern='./scratch/wheels/*.whl')),
ArtefactDescription(generated=OciImage(name='prngl')), ArtefactDescription(generated=OciImage(name='prngl')),
], ],
deployments=[ deployments=[
@@ -211,9 +211,9 @@ class TestProjectDescription(TestCase):
tarball.make_release_info(None, Version(1, 2, 3, 'dev4'))) tarball.make_release_info(None, Version(1, 2, 3, 'dev4')))
def test_wheel_release_info(self): def test_wheel_release_info(self):
wheel = Wheel(filename='dist/wheels/*') wheel = Wheel(pattern='dist/wheels/*')
self.assertEqual( self.assertEqual(
WheelReleaseInfo(filename='dist/wheels/*', WheelReleaseInfo(pattern='dist/wheels/*',
repository='gitea', repository='gitea',
version_str='1.2.3.dev4'), version_str='1.2.3.dev4'),
wheel.make_release_info(None, Version(1, 2, 3, 'dev4'))) wheel.make_release_info(None, Version(1, 2, 3, 'dev4')))
@@ -366,9 +366,9 @@ class TestProjectDescription(TestCase):
repository='balls')), repository='balls')),
ArtefactDescription(generated=Wheel( ArtefactDescription(generated=Wheel(
filename='./scratch/wheels/*.whl')), pattern='./scratch/wheels/*.whl')),
ArtefactDescription(generated=Wheel( ArtefactDescription(generated=Wheel(
filename='./scratch/wheels/*.whl', repository='other')), pattern='./scratch/wheels/*.whl', repository='other')),
ArtefactDescription(generated=Sdist( ArtefactDescription(generated=Sdist(
filename='./dist/papyru-0.0.1.tar.gz')), filename='./dist/papyru-0.0.1.tar.gz')),

View File

@@ -6,23 +6,6 @@ inputs: {}
runs: runs:
using: composite using: composite
steps: steps:
- name: declare project if neccessary
run: |
if [[ ! -z "${RELEASE_PROJECT_CURRENT_VERSION}" ]]; then
echo "already set up."
exit 0
fi
nix run ${{ github.action_path }} -- \
declare \
--release-yaml-filename ".gitea/release.yaml" \
--gitea-instance "https://gitea.puzzleyou.net" \
--release-repository-name "${{ github.repository }}" \
--release-ref-name "${{ github.ref_name }}" \
--release-run-number "${{ github.run_number }}" \
--release-commit-sha "${{ github.sha }}" \
--write-env-vars-to-filename "$GITHUB_ENV"
- name: sync versions - name: sync versions
run: | run: |
nix run ${{ github.action_path }} -- \ nix run ${{ github.action_path }} -- \