Skip to content

Commit

Permalink
Merge pull request #158 from masqu3rad3/build-and-deploy-automation
Browse files Browse the repository at this point in the history
Build and deploy automation
  • Loading branch information
masqu3rad3 authored Dec 17, 2024
2 parents f38b042 + 43f69c1 commit 1afc388
Show file tree
Hide file tree
Showing 10 changed files with 202 additions and 1 deletion.
93 changes: 93 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
name: Build and Release

on:
push:
branches:
- "main"

jobs:
build:
runs-on: windows-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.9'

- name: Install dependencies
run: pip install -r ./package/requirements.txt

- name: Install Inno Setup
run: |
curl -L -o innosetup.exe "https://jrsoftware.org/download.php/is.exe"
cmd /c "innosetup.exe /VERYSILENT /NORESTART"
- name: Extract Version from _version.py
id: extract_version
run: |
$VERSION = python -c "from tik_manager4 import _version; print(_version.__version__)"
echo "VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
shell: pwsh

- name: Debug Version
run: echo "Extracted version is ${{ env.VERSION }}"

- name: Check if Release Tag Exists
id: check_tag
run: |
git fetch --tags
if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
echo "Error: Tag v${{ env.VERSION }} already exists."
exit 1
fi
shell: bash

- name: Build and Package
run: |
cd package
./make release
- name: List Build Directory
run: dir package\build
shell: cmd

- name: Verify the Built File
run: |
if not exist "package\build\TikManager4_v${{ env.VERSION }}.exe" exit 1
shell: cmd

- name: Extract Release Notes
shell: pwsh
run: |
$NOTES = ""
$lines = Get-Content RELEASE_NOTES.md
$capture = $false
foreach ($line in $lines) {
if ($line -match "^## v${{ env.VERSION }}") { $capture = $true; continue }
if ($capture -and $line -match "^## ") { break }
if ($capture) { $NOTES += "$line`n" }
}
$NOTES = $NOTES.Trim()
echo "NOTES=$NOTES" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8
- name: Debug Release Notes
run: echo "Extracted release notes ${{ env.NOTES }}"

- name: Upload Release Assets
uses: actions/upload-artifact@v3
with:
name: TikManager4
path: package/build/TikManager4_v${{ env.VERSION }}.exe

- name: Create GitHub Release
uses: ncipollo/release-action@v1
with:
artifacts: package/build/TikManager4_v${{ env.VERSION }}.exe
token: ${{ secrets.GITHUB_TOKEN }}
tag: v${{ env.VERSION }}
name: v${{ env.VERSION }}
body: ${{ env.NOTES }}
34 changes: 34 additions & 0 deletions .github/workflows/pre-release-checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Check Tag Conflict Before Merge

on:
pull_request:
types: [opened, synchronize, reopened]
branches:
- "main"

jobs:
check-tag-conflict:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set Version Environment Variable
id: version
run: |
VERSION=$(python -c "from tik_manager4 import _version; print(_version.__version__)")
echo "VERSION=$VERSION" >> $GITHUB_ENV
- name: Debug Version Variable
run: |
echo "The extracted version is: ${{ env.VERSION }}"
- name: Fetch tags
run: git fetch --tags

- name: Check if tag exists
run: |
if git rev-parse "v${{ env.VERSION }}" >/dev/null 2>&1; then
echo "Error: Tag v${{ env.VERSION }} already exists."
exit 1
fi
70 changes: 70 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Release Notes

## v4.3.0
- TESTING: Testing the release notes.

## v4.2.1
- individual photoshop image extracts merged into one extractor
- adding alembic and usd extractors to the 3ds max
- fixing the Autodesk 3ds Max auto installer
- introduce more unit tests
- usd reference function for houdini
- Houdini integration HDAs (currently non-commercial version only)

## v4.2.0
- New Bundle Ingest Dialog introduced which will make it possible to ingest individual elements from bundled publishes.
- Render extractor added to the nuke (this needs to be added to the target categories from the 'category definitions' section from project and/or common settings)
- Preview extractor added to Maya which will allow multi-playblast publishes.
- Image Plane ingestor added to Maya to create image planes from extracted elements or snapshot publishes
- Sequence ingestor added to Nuke to import published (or snapshot published) elements.
- [TIK-129] when creating a new task populated categories sometimes is not correct
- check for updates not working
- substance painter select channels format and resolution to export
- security update for urllib3 dependency
- Documentation updates
- Bump certifi from 2024.6.2 to 2024.7.4 in /docs
- [TIK-132] improved ingesting methodology supporting bundles better by @masqu3rad3 in #131

## v4.1.1
- Adding mesh transform validation for Maya
- FBX extractor
- making the columns non-editable for task and category views
- hotfix for importomatic name
- Templating Methodology
- Ability to view publshed elements and defined the executable apps for them per user

## v4.1.0
- [TIK-116] bring back the custom thumbnail functionality
- [TIK-117] make the version owner visible in the version layout
- setting the project variables for gaffer when opening a work
- QT bind issue fixed for Katana when Renderman plugin loaded

## v4.0.91
- hotfix - blender thumbnail creation issue which causes errors on new

## v4.0.9
- [TIK-114] gaffer integration
- Deeper level sub-projects delete issue fix
- [TIK-115] substance painter integration

## v4.0.81
- linux compatibility hotfix for katana

## v4.0.8
- Windows installer and documentation update for Mari

## v4.0.7
- Initial Mari Integration

## v4.0.5
- Standard file publish method added
- Initial Trigger (modular rigging tool) implementation
- User Management and Password Change sections added to the settings menu.

## v4.0.3
- Foundry Katana integration.
- various UI updates.
- Blender file extension fixed.
- Blender thumbnails are fixed.
- Preview feature added to Blender and fixed for Houdini.
- various code optimizations and updates.
4 changes: 3 additions & 1 deletion package/release_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@
import os

# set the TIK_DCC environment variable
os.environ["TIK_DCC"] = "standalone"
os.environ["TIK_DCC"] = "null"

import subprocess

from pathlib import Path
from tik_manager4 import _version
from tik_manager4.dcc.dcc_install import Injector

os.environ["TIK_VERSION"] = _version.__version__

INNO_SETUP_EXE = Path("C:\\Program Files (x86)\\Inno Setup 6\\ISCC.exe")
PACKAGE_ROOT = Path(__file__).parent
# INNO_SCRIPT = Path(__file__).parent / "tik_manager4_innosetup_debug.iss"
Expand Down
2 changes: 2 additions & 0 deletions tik_manager4/dcc/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
from tik_manager4.dcc.maya.main import Dcc
elif NAME == "nuke":
from tik_manager4.dcc.nuke.main import Dcc
elif NAME == "null":
pass # Null DCC is used for testing purposes.
elif NAME == "photoshop":
from tik_manager4.dcc.photoshop.main import Dcc
elif NAME == "standalone":
Expand Down
Binary file modified tik_manager4/dist/tik4/install_dccs.exe
Binary file not shown.
Binary file modified tik_manager4/dist/tik4/tik4_photoshop.exe
Binary file not shown.
Binary file modified tik_manager4/dist/tik4/tik4_ps_new_version.exe
Binary file not shown.
Binary file modified tik_manager4/dist/tik4/tik4_ps_publish.exe
Binary file not shown.
Binary file modified tik_manager4/dist/tik4/tik4_standalone.exe
Binary file not shown.

0 comments on commit 1afc388

Please sign in to comment.