From bf541b2ab63ee9f4cba197afb5f58a01daa25de2 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri Date: Fri, 22 Nov 2024 16:44:00 +0100 Subject: [PATCH] Test CI --- .forgejo/workflows/build.yaml | 6 ++- packages/forgejo-report-checks/default.nix | 39 +++++++++++++++++++ .../forgejo-report-checks.py | 30 ++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 packages/forgejo-report-checks/default.nix create mode 100644 packages/forgejo-report-checks/forgejo-report-checks.py diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml index f75f6df..4b8ebfd 100644 --- a/.forgejo/workflows/build.yaml +++ b/.forgejo/workflows/build.yaml @@ -10,4 +10,8 @@ jobs: - name: Attic login run: attic login sisko http://10.100.0.1:8081 ${{secrets.ATTIC_SISKO_TOKEN}} - name: Build with nix - run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux aarch64-linux" --attic-cache "sisko" + run: nix-fast-build --no-nom --skip-cached --systems "x86_64-linux" --attic-cache "sisko" --result-file result.json + - name: Report checks + if: 0 + run: report-checks + diff --git a/packages/forgejo-report-checks/default.nix b/packages/forgejo-report-checks/default.nix new file mode 100644 index 0000000..038d2ca --- /dev/null +++ b/packages/forgejo-report-checks/default.nix @@ -0,0 +1,39 @@ +{ + writers, + python3Packages, + fetchFromGitea, + ... +}: +let + pyforgejo = python3Packages.buildPythonPackage rec { + pname = "pyforgejo"; + version = "1.0.4"; + + pyproject = true; + build-system = [ python3Packages.poetry-core ]; + + src = fetchFromGitea { + domain = "codeberg.org"; + owner = "harabat"; + repo = "pyforgejo"; + rev = "3dba949bea41140a47e4dd422a84a6da9fd394e9"; + hash = "sha256-qVXlfhKrc7yBnRvL/65bLZFW9fDjC+8FNz7yA6iMPp4="; + }; + + pythonRelaxDeps = [ + "httpx" + ]; + + dependencies = with python3Packages; [ + attrs + httpx + python-dateutil + ]; + + pythonImportsCheck = [ "pyforgejo" ]; + }; +in +writers.writePython3Bin "report-checks" { + libraries = [ pyforgejo ]; + flakeIgnore = [ "E501" ]; +} (builtins.readFile ./forgejo-report-checks.py) diff --git a/packages/forgejo-report-checks/forgejo-report-checks.py b/packages/forgejo-report-checks/forgejo-report-checks.py new file mode 100644 index 0000000..7ea3f2c --- /dev/null +++ b/packages/forgejo-report-checks/forgejo-report-checks.py @@ -0,0 +1,30 @@ +from pyforgejo import AuthenticatedClient +from pyforgejo.api.repository import repo_create_status +from pyforgejo.models.create_status_option import CreateStatusOption +import json +from os import environ + +client = AuthenticatedClient(base_url=environ["GITHUB_API_URL"], token=environ["GITHUB_TOKEN"]) + +print("hello") + +with open('result.json', 'r') as file: + data = json.load(file) + +for result in data['results']: + attr = result['attr'] + success = result['success'] + type = result['type'] + print(attr) + response = repo_create_status.sync_detailed( + owner="aciceri", + repo="nixfleet", + sha=environ["GITHUB_SHA"], + client=client, + body=CreateStatusOption( + context=type, + description=attr, + target_url="https://google.com", + state="success" if success else "failure" # ma be pending,success,failure,error_message + ) + )