Skip to content

Conversation

@llerafel
Copy link
Contributor

@llerafel llerafel commented Dec 12, 2025

Changes

linux.yml

  • Added matrix strategy (amd64/arm64)
  • Added xmake dependency caching
  • Fix artifact upload step with upload-build-for-next-job

windows.yml

  • Merge prepare package from playble-build

windows-playable-build.ymlplayable-build.yml

  • Added prepare job for version extraction and conditions Disable cron startup in forks
  • Added calling linux.yml
  • Addd re-upload artifact (rename) in matrix
  • Added release-upload job on tag pushes

Now

---
config:
  layout: dagre
---
flowchart LR
    Prepare["Prepare job<br>(get version)"] --> CheckFork["Fork + schedule?"]
    CheckFork -- Yes --> Skip["Skip build"]
    CheckFork -- No --> Build["Build jobs<br>(Windows + Linux)"]
    ReleaseCheck["Is tag push?"] -- Yes --> Release["Create GitHub Release"]
    ReleaseCheck -- No --> n1["Just upload artifact"]
    Build --> ReleaseCheck
    n2["Start"] --> Prepare

    CheckFork@{ shape: rounded}
    ReleaseCheck@{ shape: terminal}
    n1@{ shape: rect}
    n2@{ shape: start}
     Prepare:::ProcessNode
     CheckFork:::DecisionNode
     Skip:::SkipNode
     Build:::WorkflowNode
     ReleaseCheck:::DecisionNode
     Release:::ProcessNode
     n1:::ProcessNode
    classDef StartNode stroke-width:2px,stroke:#4CAF50,fill:#E8F5E9,color:#2E7D32
    classDef EndNode stroke-width:2px,stroke:#F44336,fill:#FFEBEE,color:#C62828
    classDef DecisionNode stroke-width:2px,stroke:#FF9800,fill:#FFF3E0,color:#E65100
    classDef ProcessNode stroke-width:2px,stroke:#2196F3,fill:#E3F2FD,color:#1565C0
    classDef WorkflowNode stroke-width:2px,stroke:#9C27B0,fill:#F3E5F5,color:#6A1B9A
    classDef ArtifactNode stroke-width:2px,stroke:#00BCD4,fill:#E0F7FA,color:#00838F
    classDef SkipNode stroke-width:2px,stroke:#9E9E9E,fill:#FAFAFA,color:#424242
Loading

Pre-merge

![Build status](https://github.com/tiltedphoques/TiltedEvolution/actions/workflows/playable-build.yml/badge.svg?branch=master)

GHA test run

@miredirex miredirex self-requested a review December 17, 2025 20:51
@miredirex miredirex changed the title Refactor CI: Add reusable workflows and multi-platform support CI: create GitHub Release, multi-platform build, fix linux workflow Jan 3, 2026
push:
branches:
- master
- prerel
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'prerel' branch hasn't been used in years, you can remove this

Comment on lines 88 to 89
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's not use a third-party action when gh release create exists. gh is pre-installed in gha runners

- name: Checkout master on tag push
if: github.ref_type == 'tag'
# Checkout only if the tag was pushed to master
run: '[ "$(git rev-parse HEAD)" = "$(git rev-parse origin/master)" ] && git checkout master || echo False'
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the echo?

Comment on lines 63 to 64
# Setup compilation mode and install project dependencies
# (continue-on-error + timeout is a temporary solution until sentry-native is fixed; shouldn't affect the building step)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't this comment outdated now? You fixed the hanging issue, right?

Comment on lines 79 to 81
cp packaged/lib/libSTServer.so ${{ env.STR_BUILD_DIR }}/ || true
cp packaged/bin/crashpad_handler ${{ env.STR_BUILD_DIR }}/ || true
cp packaged/bin/SkyrimTogetherServer ${{ env.STR_BUILD_DIR }}/ || true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

|| true? I think a job should fail if the file wasn't found during this step

Comment on lines 90 to 93
path: |
${{ env.STR_BUILD_DIR }}/libSTServer.so
${{ env.STR_BUILD_DIR }}/crashpad_handler
${{ env.STR_BUILD_DIR }}/SkyrimTogetherServer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
path: |
${{ env.STR_BUILD_DIR }}/libSTServer.so
${{ env.STR_BUILD_DIR }}/crashpad_handler
${{ env.STR_BUILD_DIR }}/SkyrimTogetherServer
path: ${{ env.STR_BUILD_DIR }}

@llerafel
Copy link
Contributor Author

Thanks for the review. Fixes applied:

  • Removed || true to ensure the build fails if binaries are missing.
  • Simplified artifact upload path to ${{ env.STR_BUILD_DIR }}
  • Added checkout to the release job for proper gh cli contex.

GHA test run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants