Update Go, Ebitengine and all libs except ldtkgo #196
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Executables | |
on: [push] | |
jobs: | |
tests: | |
name: Run tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Install dependencies | |
shell: bash | |
run: sudo apt-get -y install libgl1-mesa-dev xorg-dev libasound2-dev | |
- name: Run tests | |
shell: bash | |
run: xvfb-run go test -v ./... | |
build-win: | |
name: Build Windows binary | |
needs: tests | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Install dependencies | |
shell: bash | |
run: go install github.com/akavel/rsrc@latest | |
- name: Generate icon resource | |
shell: bash | |
run: rsrc -ico artwork/icon.ico | |
- name: Build Windows exe | |
shell: bash | |
run: go build | |
- name: Upload Windows exe | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-win | |
path: | | |
LICENSE | |
cr1ckt.exe | |
build-mac: | |
name: Build MacOS binary | |
needs: tests | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Build Mac exe | |
shell: bash | |
run: go build -v -o dist/Cr1ckt.app/Contents/MacOS/cr1ckt | |
- name: Tar it up | |
shell: bash | |
run: tar -zcvf cr1ckt-mac.tar.gz -C dist Cr1ckt.app | |
- name: Upload Mac exe | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-mac | |
path: cr1ckt-mac.tar.gz | |
build-lin: | |
name: Build Linux binary | |
needs: tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Install dependencies | |
shell: bash | |
run: sudo apt-get -y install libgl1-mesa-dev xorg-dev libasound2-dev | |
- name: Build Linux exe | |
shell: bash | |
run: go build -v | |
- name: Tar it up | |
shell: bash | |
run: tar -zcvf cr1ckt-lin.tar.gz cr1ckt LICENSE | |
- name: Upload Linux exe | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-lin | |
path: cr1ckt-lin.tar.gz | |
build-web: | |
name: Build Web binary | |
needs: tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Build Web binary | |
shell: bash | |
run: GOOS=js GOARCH=wasm go build -v -ldflags "-w -s" -o dist/web/cr1ckt.wasm | |
- name: Copy WASM exec script | |
shell: bash | |
run: cp $(go env GOROOT)/misc/wasm/wasm_exec.js dist/web/. | |
- name: Upload Web build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-web | |
path: | | |
dist/web/ | |
LICENSE | |
build-android: | |
name: Build Android binary | |
needs: tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.21 | |
- name: Set up our JDK environment | |
uses: actions/setup-java@v4 | |
with: | |
java-version: 17 | |
distribution: zulu | |
- name: Install ebitenmobile | |
shell: bash | |
run: go install github.com/hajimehoshi/ebiten/v2/cmd/ebitenmobile@latest | |
- name: Build Android library AAR | |
shell: bash | |
run: ebitenmobile bind -target android -androidapi 21 -javapkg org.sinisterstuf.cr1cktbin -o cr1ckt.aar ./mobile/ && cp cr1ckt.aar dist/android/app/libs/cr1ckt.aar | |
- name: Build Android APK | |
shell: bash | |
run: cd dist/android && ./gradlew assemble && cp app/build/outputs/apk/debug/app-debug.apk ../../cr1ckt.apk | |
- name: Upload Android build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-android | |
path: | | |
cr1ckt.apk | |
cr1ckt.aar | |
cr1ckt-sources.jar | |
LICENSE | |
upload-bundle: | |
name: Bundle binaries with dev assets | |
runs-on: ubuntu-latest | |
needs: [build-lin, build-mac, build-win, build-android] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download Windows binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-win | |
- name: Download Linux binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-lin | |
- name: Download Mac binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-mac | |
- name: Download Android binary | |
uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-android | |
- name: Upload beta testing bundle | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cr1ckt-bundle | |
path: | | |
README.md | |
LICENSE | |
assets/ | |
cr1ckt-lin.tar.gz | |
cr1ckt-mac.tar.gz | |
cr1ckt-sources.jar | |
cr1ckt.aar | |
cr1ckt.apk | |
cr1ckt.exe | |
cr1ckt.ini.example | |
deploy-win: | |
name: Deploy Windows build to itch.io | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: build-win | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-win | |
- uses: josephbmanley/butler-publish-itchio-action@master | |
env: | |
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }} | |
CHANNEL: windows | |
ITCH_GAME: cr1ckt | |
ITCH_USER: sionleroux | |
PACKAGE: cr1ckt.exe | |
VERSION: ${{github.ref_name}} | |
deploy-mac: | |
name: Deploy MacOs build to itch.io | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: build-mac | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-mac | |
- name: Extract tarball | |
shell: bash | |
run: tar -zxvf cr1ckt-mac.tar.gz | |
- uses: josephbmanley/butler-publish-itchio-action@master | |
env: | |
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }} | |
CHANNEL: mac | |
ITCH_GAME: cr1ckt | |
ITCH_USER: sionleroux | |
PACKAGE: Cr1ckt.app | |
VERSION: ${{github.ref_name}} | |
deploy-lin: | |
name: Deploy Linux build to itch.io | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: build-lin | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-lin | |
- name: Extract tarball | |
shell: bash | |
run: tar -zxvf cr1ckt-lin.tar.gz | |
- uses: josephbmanley/butler-publish-itchio-action@master | |
env: | |
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }} | |
CHANNEL: linux | |
ITCH_GAME: cr1ckt | |
ITCH_USER: sionleroux | |
PACKAGE: cr1ckt | |
VERSION: ${{github.ref_name}} | |
deploy-web: | |
name: Deploy Web build to itch.io | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: build-web | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-web | |
- uses: josephbmanley/butler-publish-itchio-action@master | |
env: | |
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }} | |
CHANNEL: web | |
ITCH_GAME: cr1ckt | |
ITCH_USER: sionleroux | |
PACKAGE: dist/web | |
VERSION: ${{github.ref_name}} | |
deploy-android: | |
name: Deploy Android build to itch.io | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: build-android | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
name: cr1ckt-android | |
- uses: josephbmanley/butler-publish-itchio-action@master | |
env: | |
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }} | |
CHANNEL: android | |
ITCH_GAME: cr1ckt | |
ITCH_USER: sionleroux | |
PACKAGE: cr1ckt.apk | |
VERSION: ${{github.ref_name}} |