Skip to content

Upgrade Gradle wrapper #191

Upgrade Gradle wrapper

Upgrade Gradle wrapper #191

Workflow file for this run

name: Build Executables
on: [push]
jobs:
tests:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
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@v2
- name: Set up Go
uses: actions/setup-go@v2
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@v2.2.4
with:
name: cr1ckt-win
path: |
LICENSE
cr1ckt.exe
build-mac:
name: Build MacOS binary
needs: tests
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
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@v2.2.4
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@v2
- name: Set up Go
uses: actions/setup-go@v2
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@v2.2.4
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@v2
- name: Set up Go
uses: actions/setup-go@v2
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@v2.2.4
with:
name: cr1ckt-web
path: |
dist/web/
LICENSE
build-android:
name: Build Android binary
needs: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.21
- name: Set up our JDK environment
uses: actions/setup-java@v1.4.3
with:
java-version: 17
- 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@v2.2.4
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@v2
- name: Download Windows binary
uses: actions/download-artifact@v2
with:
name: cr1ckt-win
- name: Download Linux binary
uses: actions/download-artifact@v2
with:
name: cr1ckt-lin
- name: Download Mac binary
uses: actions/download-artifact@v2
with:
name: cr1ckt-mac
- name: Download Android binary
uses: actions/download-artifact@v2
with:
name: cr1ckt-android
- name: Upload beta testing bundle
uses: actions/upload-artifact@v2.2.4
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@v2
with:
name: cr1ckt-win
- uses: josephbmanley/butler-publish-itchio-action@master
env:
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }}
CHANNEL: windows
ITCH_GAME: cr1ckt
ITCH_USER: sinisterstuf
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@v2
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: sinisterstuf
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@v2
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: sinisterstuf
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@v2
with:
name: cr1ckt-web
- uses: josephbmanley/butler-publish-itchio-action@master
env:
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }}
CHANNEL: web
ITCH_GAME: cr1ckt
ITCH_USER: sinisterstuf
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@v2
with:
name: cr1ckt-android
- uses: josephbmanley/butler-publish-itchio-action@master
env:
BUTLER_CREDENTIALS: ${{ secrets.BUTLER_CREDENTIALS }}
CHANNEL: android
ITCH_GAME: cr1ckt
ITCH_USER: sinisterstuf
PACKAGE: cr1ckt.apk
VERSION: ${{github.ref_name}}