From fa8fc161dab8cc8d50facd88dcd6498d787044f7 Mon Sep 17 00:00:00 2001
From: fbpyr <73931454+fbpyr@users.noreply.github.com>
Date: Wed, 10 Aug 2022 13:22:26 +0200
Subject: [PATCH] Choco action (#2335)
* check cron based trigger isolated
* check cron based trigger isolated
* fix args
* add scheduled choco build action
* revert to original
* fix action name
* fix action name
* remove apt install as required packages exist already in the container
* remove apt install as required packages exist already in the container
---
.github/workflows/ci-blenderbim-choco.yml | 98 +++++++++++++++++++++++
choco/blenderbim/check_repo_infos.py | 9 ++-
2 files changed, 103 insertions(+), 4 deletions(-)
create mode 100644 .github/workflows/ci-blenderbim-choco.yml
diff --git a/.github/workflows/ci-blenderbim-choco.yml b/.github/workflows/ci-blenderbim-choco.yml
new file mode 100644
index 0000000000..e2ef824857
--- /dev/null
+++ b/.github/workflows/ci-blenderbim-choco.yml
@@ -0,0 +1,98 @@
+name: Publish-blenderbim-chocolatey package
+
+on:
+ schedule:
+ # ┌───────────── minute (0 - 59)
+ # │ ┌───────────── hour (0 - 23)
+ # │ │ ┌───────────── day of the month (1 - 31)
+ # │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
+ # │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
+ # * * * * *
+ - cron: "55 23 * * *" # 5min before utc midnight
+
+env:
+ major: 0
+ minor: 0
+ name: blenderbim
+ choco_version: 1.1.0
+ CHOCO_TOKEN: ${{ secrets.CHOCO_TOKEN }}
+
+jobs:
+ activate:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Set env
+ run: echo ok go
+
+ build:
+ needs: activate
+ name: ${{ matrix.config.name }}-${{ matrix.pyver }}
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ pyver: [py310]
+ config:
+ - {
+ name: "Windows Build",
+ short_name: win,
+ }
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2 # https://github.com/actions/setup-python
+ with:
+ python-version: '3.7.7' # Version range or exact version of a Python version to use, using SemVer's version range syntax
+ architecture: 'x64' # optional x64 or x86. Defaults to x64 if not specified
+ - run: echo ${{ env.DATE }}
+
+ - name: Check in published releases if we should do a choco release
+ id: do_choco
+ run: |
+ echo "::set-output name=choco_release::$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --do_choco_release?)"
+
+ - name: Compile
+ if: ${{steps.do_choco.outputs.choco_release}} == 'do_choco_release'
+ run: |
+ target_os=${{ matrix.config.short_name }} &&
+ pyver=$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --pyver?) &&
+ cp -r src/blenderbim src/blenderbim_$target_os_$pyver &&
+ cd src/blenderbim_$target_os_$pyver &&
+ make dist PLATFORM=$target_os PYVERSION=$pyver
+
+ - name: Fill chocolatey scripts on win with latest blender python
+ if: ${{steps.do_choco.outputs.choco_release}} == 'do_choco_release'
+ run: |
+ today_non_iso="$(date +'%y%m%d' | tr -d '\n')" &&
+ target_os=${{ matrix.config.short_name }} &&
+ latest_blender_python_version_maj_min=$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --latest_blender_python_version_maj_min?) &&
+ echo "latest_blender_python_version_maj_min?: $latest_blender_python_version_maj_min" &&
+ pyver=$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --pyver?) &&
+ export latest_blender_version_maj_min=$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --latest_blender_release_maj_min?) &&
+ export latest_blender_version_maj_min_pat=$(python3 /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/check_repo_infos.py --latest_blender_release_maj_min_pat?) &&
+ echo latest_blender_version_maj_min_pat?: $latest_blender_version_maj_min_pat &&
+ export blenderbim_build_version="${{ env.major }}.${{ env.minor }}.$today_non_iso" &&
+ export url_blenderbim_py310_win_zip="https://github.com/IfcOpenShell/IfcOpenShell/releases/download/blenderbim-$today_non_iso/blenderbim-$today_non_iso-$pyver-$target_os.zip" &&
+ export sha256sum_blenderbim_py310_win_zip=$( sha256sum src/blenderbim_$target_os_$pyver/dist/blenderbim-$today_non_iso-$pyver-$target_os.zip --tag | cut -d ' ' -f 4 | tr -d '\n') &&
+ echo sha256sum_blenderbim_py310_win_zip: $sha256sum_blenderbim_py310_win_zip &&
+ python3 choco/blenderbim/fill_dynamic_parameters.py &&
+ echo __build choco with mono &&
+ wget "https://github.com/chocolatey/choco/archive/refs/tags/$choco_version.tar.gz" --quiet &&
+ tar -xzf "$choco_version.tar.gz" &&
+ cd choco-$choco_version &&
+ chmod +x build.sh zip.sh &&
+ ./build.sh &&
+ cp -r build_output/chocolatey /opt/chocolatey &&
+ cd /home/runner/work/IfcOpenShell/IfcOpenShell/choco/blenderbim/ &&
+ echo __choco pack &&
+ mono /opt/chocolatey/choco.exe --version &&
+ mono /opt/chocolatey/choco.exe pack --allow-unofficial &&
+ echo __choco set apiKey &&
+ mono /opt/chocolatey/choco.exe setapikey --key="$CHOCO_TOKEN" --source="https://push.chocolatey.org/" --allow-unofficial # &&
+ echo __choco push &&
+ mono /opt/chocolatey/choco.exe push --source="https://push.chocolatey.org/" --key="$CHOCO_TOKEN" --allow-unofficial --verbose
+
+ - name: Inform user about not packaging
+ if: ${{steps.do_choco.outputs.choco_release}} != 'do_choco_release'
+ run: |
+ echo "no releases found today ${{ env.DATE }}, therefore choco packaging is skipped."
+
diff --git a/choco/blenderbim/check_repo_infos.py b/choco/blenderbim/check_repo_infos.py
index d3865c87d3..5f3c5fdbc8 100644
--- a/choco/blenderbim/check_repo_infos.py
+++ b/choco/blenderbim/check_repo_infos.py
@@ -1,6 +1,6 @@
-import sys
-import re
import datetime
+import re
+import sys
from urllib import request
@@ -22,7 +22,7 @@ if sys.argv[1] == "--do_choco_release?":
print("do_choco_release", end="")
-elif sys.argv[1] == "--latest_blender_release_min_maj_pat?":
+elif sys.argv[1] == "--latest_blender_release_maj_min_pat?":
re_blender_version_min_maj_pat = r"Latest Version.+Blender (\d+\.\d+\.\d+)"
url = "https://community.chocolatey.org/packages/blender"
resp = request_repo_info(url)
@@ -32,7 +32,7 @@ elif sys.argv[1] == "--latest_blender_release_min_maj_pat?":
print(found[0], end="")
-elif sys.argv[1] == "--latest_blender_release_min_maj?":
+elif sys.argv[1] == "--latest_blender_release_maj_min?":
re_blender_version_min_maj = r"Latest Version.+Blender (\d+\.\d+)\..+"
url = "https://community.chocolatey.org/packages/blender"
resp = request_repo_info(url)
@@ -41,6 +41,7 @@ elif sys.argv[1] == "--latest_blender_release_min_maj?":
if found:
print(found[0], end="")
+
elif sys.argv[1] == "--latest_blender_python_version_maj_min?":
# get latest blender version first
re_blender_version_min_maj_pat = r"Latest Version.+Blender (\d+\.\d+\.\d+)"