From 5a51a187e263aa2eada0fcf5617ab8793f585057 Mon Sep 17 00:00:00 2001 From: carlosuc3m <100329787@alumnos.uc3m.es> Date: Wed, 8 Jan 2025 11:44:42 +0100 Subject: [PATCH] avoid finding sizes online for the user --- .github/get_jars_sizes.py | 22 ++++++++++++++++ .github/workflows/jar_sizes.yml | 45 ++++++++++++++++++++++----------- 2 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 .github/get_jars_sizes.py diff --git a/.github/get_jars_sizes.py b/.github/get_jars_sizes.py new file mode 100644 index 00000000..3d5a91cb --- /dev/null +++ b/.github/get_jars_sizes.py @@ -0,0 +1,22 @@ +import json +import requests + +def get_file_size(url): + response = requests.head(url, allow_redirects=True) + if 'Content-Length' not in response.headers: + raise Exception(f"Unable to find size of {url}") + return int(response.headers['Content-Length']) + + +fname="src/main/resources/availableDLVersions.json" + +with open(fname, 'r') as ff: + engines = json.load(ff) + +jar_dict = {} + +for engine in engines["versions"]: + for jar in engine["jars"]: + if jar in jar_dict.keys: + continue + jar_dict[jar] = get_file_size(jar) diff --git a/.github/workflows/jar_sizes.yml b/.github/workflows/jar_sizes.yml index 3ee79d58..4bb7b1dd 100644 --- a/.github/workflows/jar_sizes.yml +++ b/.github/workflows/jar_sizes.yml @@ -6,21 +6,36 @@ on: paths: - src/main/resources/availableDLVersions.json - .github/workflows/jar_sizes.yml - pull_request: - branches: [ main ] + - .github/get_jar_sizes.py + workflow_dispatch: jobs: build-and-run: - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest] + runs-on: ubuntu-latest + steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Set up Python 3.9 - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - name: Download all engines - run: | - python download-engines.py + - name: Check out repository + uses: actions/checkout@v4 + + # Step 2: Set up Python environment + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' # Specify the Python version + + - name: Get file sizes and generate JSON + run: python .github/get_jar_sizes.py + + - name: Commit and push changes + run: | + # Configure Git + git config user.name "github-actions" + git config user.email "github-actions@github.com" + + # Only commit/push if there are changes + if [ -n "$(git status --porcelain)" ]; then + git add src/main/resources/sizes.json + git commit -m "Update file sizes" + git push + else + echo "No changes to commit." + fi