1 Commits

Author SHA1 Message Date
5d085b79cc WIP 2
All checks were successful
run tests / check (push) Successful in 36s
run tests / release (push) Successful in 25s
2025-12-11 11:30:41 +01:00
7 changed files with 60 additions and 35 deletions

View File

@@ -1 +1 @@
version_descriptor: setup.py version_descriptor: pyproject.toml

View File

@@ -1,7 +1,6 @@
name: check if project is already released name: check if project is already released
on: on:
- pull_request - pull_request
- push # TODO test
jobs: jobs:
unittest: unittest:

23
flake.lock generated
View File

@@ -34,10 +34,31 @@
"type": "github" "type": "github"
} }
}, },
"pyproject-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1764134915,
"narHash": "sha256-xaKvtPx6YAnA3HQVp5LwyYG1MaN4LLehpQI8xEdBvBY=",
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"rev": "2c8df1383b32e5443c921f61224b198a2282a657",
"type": "github"
},
"original": {
"owner": "pyproject-nix",
"repo": "pyproject.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"pyproject-nix": "pyproject-nix"
} }
}, },
"systems": { "systems": {

View File

@@ -4,22 +4,23 @@
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
pyproject-nix = {
url = "github:pyproject-nix/pyproject.nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = { self, nixpkgs, flake-utils, ... }: outputs = { self, nixpkgs, flake-utils, pyproject-nix }:
flake-utils.lib.eachDefaultSystem (system: flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = import nixpkgs { inherit system; }; pkgs = import nixpkgs { inherit system; };
python = pkgs.python313.withPackages (ps: with ps; [ pythonProject = pyproject-nix.lib.project.loadPyproject {
isort projectRoot = ./.;
flake8 };
semver
toml pythonInterpreter = pkgs.python313;
requests
pyyaml
packaging
]);
pythonPackage = pkgs.python3Packages.buildPythonPackage { pythonPackage = pkgs.python3Packages.buildPythonPackage {
name = "release-action"; name = "release-action";
@@ -32,24 +33,18 @@
pkgs.envsubst pkgs.envsubst
pkgs.just pkgs.just
pkgs.gitea-actions-runner pkgs.gitea-actions-runner
python (pythonInterpreter.withPackages
(pythonProject.renderers.withPackages {
python = pythonInterpreter;
extraPackages = ps: with ps; [ flake8 isort ];
}))
]; ];
}; };
packages.default = pkgs.writers.writePython3Bin packages.default = pythonInterpreter.pkgs.buildPythonPackage (
"release-action" pythonProject.renderers.buildPythonPackage {
{ python = pythonInterpreter;
libraries = with pkgs.python3Packages; [ });
semver # TODO move to setup.py?
toml
requests
pythonPackage
pyyaml
packaging
];
}
(builtins.readFile ./src/main.py)
;
} }
); );
} }

16
pyproject.toml Normal file
View File

@@ -0,0 +1,16 @@
[project]
name = "gitea-release-action"
version = "0.0.1"
description = "reusable action for release workflows"
authors = [ ]
requires-python = ">=3.13"
dependencies = [
"semver",
"toml",
"requests",
"pyyaml",
"packaging"
]
[project.scripts]
gitea-release-action = "main:main_cli"

View File

@@ -1,6 +0,0 @@
from setuptools import setup
setup(
name='release-action',
version='0.0.2',
)

View File

@@ -248,7 +248,7 @@ def sync_versions(project_description: ProjectDescription):
sync(artefact.version_descriptor) sync(artefact.version_descriptor)
if __name__ == '__main__': def main_cli():
parser = ArgumentParser() parser = ArgumentParser()
parser.add_argument('action', choices=[ parser.add_argument('action', choices=[
'declare', 'declare',