Skip to content

ofgen template ~ Github Actions #51

@dimitre

Description

@dimitre

it would be great to have a template to publish an app to github actions.
I'm already using in a personal project so I can deploy to Windows automatically.

Once of.yml supports git addresses we can make this as github actions steps, or just let ofgen handle everything.

not sure yet how to choose platforms to deploy.
maybe a special key inside of.yml listing which platforms to build.

Here is the barebones to make it work, windows only:

name: IsoLux2026
on: [push]

env:
  GH_TOKEN: ${{ github.token }}

permissions:
  contents: write # Required for release uploads

jobs:
  IsoLux:
    runs-on: windows-latest
    steps:
      - name: Checkout ofWorks
        uses: actions/checkout@v5
        with:
          repository: dimitre/openframeworks
          ref: ofworks
          path: ofworks

      - name: Install zip
        if: runner.os == 'Windows'
        run: choco install zip -y

      - name: Libs
        shell: bash
        working-directory: ofworks

        run: |
          ./libs/libs.sh

      - name: Install Chalet
        # if: matrix.platform == 'vs'
        uses: jaxxstorm/action-install-gh-release@v2.1.0
        with:
          repo: chalet-org/chalet
          cache: enable
          extension: .zip
          prerelease: "false"

      - name: Chalet Test / Version
        run: |
          chalet --version

      - name: ofgen compile
        shell: bash
        working-directory: ofworks/ofGen
        run: |
          ./compile.sh

      - name: ofgen windows add to path
        if: runner.os == 'Windows'
        shell: pwsh
        working-directory: ofworks/ofGen
        run: |
          (Resolve-Path .\dist).Path | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append

      - name: Checkout ofxTools
        uses: actions/checkout@v5
        with:
          repository: dimitre/ofxTools
          token: ${{ secrets.PAT_TOKEN }}
          path: ofworks/addons/ofxTools

      - name: Checkout ofxScenes
        uses: actions/checkout@v5
        with:
          repository: dimitre/ofxScenes
          token: ${{ secrets.PAT_TOKEN }}
          path: ofworks/addons/ofxScenes

      - name: Checkout ofxNDI
        uses: actions/checkout@v5
        with:
          repository: ofworks/ofxNDI
          path: ofworks/addons/ofxNDI

      - name: Checkout IsoLux
        uses: actions/checkout@v5
        with:
          path: ofworks/apps/myApps/IsoLux

      - name: Checkout ofxMicroUI
        uses: actions/checkout@v5
        with:
          repository: dimitre/ofxMicroUI
          path: ofworks/addons/ofxMicroUI

      - name: App publish
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        working-directory: ofworks/apps/myApps/IsoLux

        run: |
          ofgen templates=chalet
          chalet bundle --show-commands
          zip -r "${{ github.workflow }}_${{ runner.os }}.zip" dist/*
          gh release upload v02 *.zip --clobber

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions