Skip to content

Ubuntu support #5

Description

@gnysek

By changing:

modules = ["android"];

to:

modules = ["android", "linux"];

in https://github.com/bscotch/igor-setup/blob/main/src/lib/igor-setup.ts#L182

I was able to make a build for Ubuntu, with below nearly-basic config (notice platform: linux, also "find" part is same as for android):

name: Ubuntu Build (VM)
on: 
  # push: #Uncomment this line to run the workflow on push
  workflow_dispatch: #This line allows you to run the workflow manually from the GitHub Actions page
  workflow_call: #This line allows you to run the workflow from another workflow
jobs:
  build:
    runs-on: ubuntu-24.04
    steps:
      # Check out the repository with the GameMaker project
      - uses: actions/checkout@v4
        with:
          lfs: true
      # This step finds the yyp file in the repository and saves the path to an output
      - id: find_yyp
        name: Find the yyp file
        run: |
          yyp=$(find ${{ github.workspace }} -name "*.yyp")
          echo "YYP file found at: $yyp"
          echo "yyp-path=$yyp" >> $GITHUB_OUTPUT
      - name: Set up ffmpeg # This step may be removed when https://github.com/YoYoGames/GameMaker-Bugs/issues/4977 is fixed
        uses: FedericoCarboni/setup-ffmpeg@v3
        with:
          ffmpeg-version: '6.1.0'
      # This step sets up the GameMaker build CLI tool Igor https://github.com/bscotch/igor-setup
      - name: use Igor Setup
        uses: bscotch/igor-setup@v1
        id: igor
        with:
          target-yyp: ${{ steps.find_yyp.outputs.yyp-path }}
          access-key: ${{ secrets.ACCESS_KEY }}
          module: linux
      - name: use Igor build
        uses: bscotch/igor-build@v1
        id: build
        with:
          yyp-path: ${{ steps.find_yyp.outputs.yyp-path }}
          user-dir: ${{ steps.igor.outputs.user-dir }}
          platform: linux
          yyc: false
      # This step uploads the build to the artifacts, so you can download it from the GitHub Actions page or use it in another workflow
      - name: upload-build
        uses: actions/upload-artifact@v4
        with:
          name: igor-build-ubuntu
          path: ${{ steps.build.outputs.out-dir }}
          retention-days: 1 # Longer retention days can incur additional charges. See https://docs.github.com/en/actions/using-workflows/storing-workflow-data-as-artifacts

However, I'm not good enough to fully understand how those scripts works, and how to separate android/ubuntu builds.

I've checked it on runtime 2024.1100.0.658:
obraz

If someone with bigger knowledge would be able to adapt some better solution (so android/linux would be properly differetiated, and won't cause downloading both runtimes), that would be useful for others.

For now I'm at least sharing, that it's possible :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions