diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a54385..334f767 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -88,11 +88,10 @@ jobs: retention-days: 7 - name: "Publish package" + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} run: | PUBLISH_USER="${{ secrets.PUBLISH_USER }}" \ PUBLISH_KEY="${{ secrets.PUBLISH_KEY }}" \ VERSION="${{ github.sha }}" \ - PACKAGE="${{ secrets.PACKAGE }}" \ + PACKAGE="${{ vars.PACKAGE }}" \ python tools/build/publish.py - - diff --git a/tools/build/publish.py b/tools/build/publish.py index 452f356..02cf077 100644 --- a/tools/build/publish.py +++ b/tools/build/publish.py @@ -1,26 +1,24 @@ -from typing import TypedDict from pathlib import Path import requests -import shutil import json import os -from requests.auth import HTTPBasicAuth -URL="https://git.betalupi.com" -USER = os.environ['USER'] -PACKAGE = os.environ['PACKAGE'] -VERSION = os.environ['VERSION'] -AUTH = HTTPBasicAuth(USER, os.environ['PUBLISH_KEY']) +URL = "https://git.betalupi.com" +USER = os.environ["USER"] +PACKAGE = os.environ["PACKAGE"] +VERSION = os.environ["VERSION"] +AUTH = requests.auth.HTTPBasicAuth(USER, os.environ["PUBLISH_KEY"]) ROOT: Path = Path(os.getcwd()) SRC_DIR: Path = ROOT / "output" + def log(msg): print(f"[PUBLISH.PY] {msg}") log(f"Version is {VERSION}") -log(f"Package is is {PACKAGE}") +log(f"Package is {PACKAGE}") log(f"Running in {ROOT}") if not ROOT.is_dir(): log("Root is not a directory, cannot continue") @@ -31,49 +29,39 @@ if not SRC_DIR.exists(): log("Source dir doesn't exist, cannot continue") exit(1) + def upload(data, target: str): requests.put( f"{URL}/api/packages/{USER}/generic/{PACKAGE}/{VERSION}/{target}", auth=AUTH, - data=data + data=data, ) - return f"{URL}/api/packages/{USER}/generic/ormc-handouts/{VERSION}/{target}" + return f"{URL}/api/packages/{USER}/generic/{PACKAGE}/{VERSION}/{target}" -index = SRC_DIR / "index.json" -with index.open("r") as f: + +index_file = SRC_DIR / "index.json" +with index_file.open("r") as f: index = json.load(f) new_index = [] for handout in index: title = handout["title"] group = handout["group"] - h_file = SRC_DIR/handout["handout_file"] - s_file = SRC_DIR/handout["handout_file"] + h_file = SRC_DIR / handout["handout_file"] + s_file = SRC_DIR / handout["handout_file"] h_url = None s_url = None - h_url = upload( - h_file.open('rb').read(), - f"{group} - {title}.pdf" - ) + h_url = upload(h_file.open("rb").read(), f"{group} - {title}.pdf") if s_file is not None: - s_url = upload( - s_file.open('rb').read(), - f"{group} - {title}.sols.pdf" - ) + s_url = upload(s_file.open("rb").read(), f"{group} - {title}.sols.pdf") - log(f"Published {title}") + log(f"Published {title} to {h_url}") - new_index.append({ - "title": title, - "group": group, - "handout": h_url, - "solutions": s_url - }) + new_index.append( + {"title": title, "group": group, "handout": h_url, "solutions": s_url} + ) -upload( - json.dumps(new_index), - "index.json" -) \ No newline at end of file +upload(json.dumps(new_index), "index.json")