
lol | bsky | sprlv | ao3 | ttrpgs | vidya
git remote add gh [url] so I could push to both. iirc actions are enabled by default on new repos, so you should be able to just go in and make one under that tab.name: cross-compilation hell
on:
push:
branches: [main]
jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: ''
buildfolder: 'stable-linux-x64'
osname: 'linux'
folderbase: /home/runner/work
- os: macos-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: '.app'
buildfolder: 'stable-macos-arm64'
osname: 'macos'
folderbase: /Users/runner/work
- os: windows-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: '.exe'
buildfolder: 'stable-win-x64'
osname: 'windows'
folderbase: /d/a
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v7
# Install platform-specific dependencies
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev unzip zip
- name: Install macOS dependencies
if: runner.os == 'macOS'
run: |
brew install pkg-config
- name: Install Windows dependencies
if: runner.os == 'Windows'
run: |
choco install visualstudio2022buildtools -y
- name: Setup Bun
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: latest
- name: Install Packages
run: bun --bun i
- name: Build application
run: bun --bun run eb:build:release
- name: Make Releases Folder
shell: bash
run: |
mkdir -p release
- name: Zip Files for Upload
if: runner.os == 'macOS'
uses: TheDoctor0/zip-release@0.7.6
with:
filename: HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
directory: ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release
path: ../build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002.app
custom: -r
- name: Zip Files for Upload
if: runner.os == 'Linux'
uses: TheDoctor0/zip-release@0.7.6
with:
filename: HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
directory: ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release
path: ../build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002
custom: -r
- name: CURL Upload Windows Build to Bunny Storage
if: runner.os == 'Windows'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.exe \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/zip" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002-Setup.exe
- name: CURL Upload Build to Bunny Storage
if: runner.os == 'Linux' || runner.os == 'macOS'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/zip" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
- name: CURL Upload DMG to Bunny Storage
if: runner.os == 'macOS'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.dmg \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/zip" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/artifacts/stable-macos-arm64-HOME_MOVIES_8-3-2002.dmgname: cross-compilation hell
on:
push:
branches: [main]jobs:
build:
strategy:
matrix:
include:
- os: ubuntu-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: ''
buildfolder: 'stable-linux-x64'
osname: 'linux'
folderbase: /home/runner/work
- os: macos-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: '.app'
buildfolder: 'stable-macos-arm64'
osname: 'macos'
folderbase: /Users/runner/work
- os: windows-latest
artifact_name: HOME_MOVIES_8-3-2002
artifact_ext: '.exe'
buildfolder: 'stable-win-x64'
osname: 'windows'
folderbase: /d/a
runs-on: ${{ matrix.os }} steps:
- uses: actions/checkout@v7
- name: Get System Info
uses: lexbritvin/os-info-action@v1
id: systeminfo
# Install platform-specific dependencies
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev unzip zip
- name: Install macOS dependencies
if: runner.os == 'macOS'
run: |
brew install pkg-config
- name: Install Windows dependencies
if: runner.os == 'Windows'
run: |
choco install visualstudio2022buildtools -y
uses step which just imports the action utilities from github. you should have it but you don't need to worry about itif property, which as you might guess tells it what conditions to run under. We're using it here to run a separate package install process for each OS, since they all have different package managers and need different dependencies. this is probably all you need and if you need any additional packages the build process errors will tell you. - name: Setup Bun
uses: oven-sh/setup-bun@v2.2.0
with:
bun-version: latest
- name: Install Packages
run: bun --bun i
- name: Build application
run: bun --bun run eb:build:release
- name: Make Releases Folder
shell: bash
run: |
mkdir -p releasebun i is the dependency installation for the project; if you're using a different language, substitute that package manager's install script (e.g. yarn, deno install, pnpm install, composer install, whatever). - name: Zip Files for Upload
if: runner.os == 'macOS'
uses: TheDoctor0/zip-release@0.7.6
with:
filename: HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
directory: ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release
path: ../build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002.app
custom: -r
- name: Zip Files for Upload
if: runner.os == 'Linux'
uses: TheDoctor0/zip-release@0.7.6
with:
filename: HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
directory: ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release
path: ../build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002
custom: -r
- name: CURL Upload Windows Build to Bunny Storage
if: runner.os == 'Windows'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.exe \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/vnd.microsoft.portable-executable" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/build/${{ matrix.buildfolder }}/HOME_MOVIES_8-3-2002-Setup.exe
- name: CURL Upload Build to Bunny Storage
if: runner.os == 'Linux' || runner.os == 'macOS'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/zip" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/release/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.zip
- name: CURL Upload DMG to Bunny Storage
if: runner.os == 'macOS'
shell: bash
run: |
curl -X PUT https://la.storage.bunnycdn.com/${{ secrets.BUNNY_STORAGE_ZONE }}/${{ secrets.BUNNY_FOLDER_PATH }}/HOME_MOVIES_8-3-2002-${{ matrix.osname }}.dmg \
-H "AccessKey: ${{ secrets.BUNNY_UPLOAD }}" \
-H "Content-Type: application/zip" \
--upload-file ${{ matrix.folderbase }}/tyvnj2/tyvnj2/artifacts/stable-macos-arm64-HOME_MOVIES_8-3-2002.dmgThinking about what kinds of posts I could make here since I'm bad at remembering to post in slightly longer formats