project builder #3
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: project builder | |
on: | |
workflow_dispatch: | |
inputs: | |
project_path: | |
type: string | |
description: path to github project, in format <owner>/<repo> | |
required: true | |
permissions: | |
contents: write | |
pages: write | |
id-token: write | |
concurrency: | |
group: build | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: ${{ matrix.targetPlatform }} build | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
targetPlatform: | |
- StandaloneWindows64 | |
- StandaloneLinux64 | |
- WebGL | |
outputs: | |
release: ${{ steps.release.outputs.test }} | |
steps: | |
- name: clone project | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ github.event.inputs.project_path }} | |
lfs: true | |
submodules: recursive | |
token: ${{ secrets.PAT_TOKEN }} | |
- name: upload webgl template | |
uses: actions/upload-artifact@v3 | |
if: matrix.targetPlatform == 'WebGL' && startsWith(github.ref, 'refs/tags/v') | |
with: | |
name: WebGL-Template | |
path: WebGL | |
- name: cache Library | |
uses: actions/cache@v3 | |
with: | |
path: Library | |
key: Library-${{ matrix.targetPlatform }} | |
restore-keys: Library-${{ matrix.targetPlatform }} | |
- name: build project for ${{ matrix.targetPlatform }} | |
uses: game-ci/unity-builder@v4 | |
env: | |
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} | |
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} | |
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} | |
with: | |
targetPlatform: ${{ matrix.targetPlatform }} | |
- name: upload ${{ matrix.targetPlatform }} build | |
uses: actions/upload-artifact@v3 | |
if: startsWith(github.ref, 'refs/tags/v') | |
with: | |
name: Build-${{ matrix.targetPlatform }} | |
path: build/${{ matrix.targetPlatform }} | |
- name: archive ${{ matrix.targetPlatform }} release | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: cd build/${{ matrix.targetPlatform }} && zip -r ../../neebo-${{ github.ref_name }}-${{ matrix.targetPlatform }}.zip . | |
- name: publish ${{ matrix.targetPlatform }} release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/v') | |
id: release | |
with: | |
files: neebo-${{ github.ref_name }}-${{ matrix.targetPlatform }}.zip | |
- name: write matrix outputs | |
uses: cloudposse/github-action-matrix-outputs-write@main | |
if: startsWith(github.ref, 'refs/tags/v') | |
id: out | |
with: | |
matrix-step-name: release | |
matrix-key: ${{ matrix.targetPlatform }} | |
outputs: |- | |
releases: ${{ steps.release.outputs.assets }} | |
read: | |
runs-on: ubuntu-latest | |
needs: build | |
if: startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- name: read matrix outputs | |
uses: cloudposse/github-action-matrix-outputs-read@main | |
id: read | |
with: | |
matrix-step-name: release | |
outputs: | |
result: ${{ steps.read.outputs.result }} | |
# deploy: | |
# needs: read | |
# runs-on: ubuntu-latest | |
# if: startsWith(github.ref, 'refs/tags/v') | |
# environment: | |
# name: github-pages | |
# url: ${{ steps.deployment.outputs.page_url }} | |
# steps: | |
# - name: download webgl build | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: Build-WebGL | |
# path: . | |
# | |
# - name: unpack webgl build | |
# run: | | |
# ls -lar . | |
# ls -lar WebGL | |
# cp -r WebGL/Build . | |
# rm -rf WebGL | |
# | |
# - name: download webgl template | |
# uses: actions/download-artifact@v3 | |
# with: | |
# name: WebGL-Template | |
# path: . | |
# | |
# - name: get commit hash | |
# id: get-commit | |
# uses: pr-mpt/actions-commit-hash@v2 | |
# | |
# - name: substitute env on index.html | |
# uses: danielr1996/[email protected] | |
# env: | |
# LINUX_BUILD_LINK: ${{ fromJson(needs.read.outputs.result).releases.StandaloneLinux64[0].browser_download_url }} | |
# WINDOWS_BUILD_LINK: ${{ fromJson(needs.read.outputs.result).releases.StandaloneWindows64[0].browser_download_url }} | |
# BUILD_COMMIT: ${{ steps.get-commit.outputs.short }} | |
# BUILD_COMMIT_MESSAGE: ${{ github.event.head_commit.message }} | |
# with: | |
# input: ./index.html | |
# output: ./index.html | |
# | |
# - name: configure pages | |
# uses: actions/configure-pages@v2 | |
# | |
# - name: upload pages build artifact | |
# uses: actions/upload-pages-artifact@v1 | |
# with: | |
# path: . | |
# | |
# - name: deploy pages | |
# id: deployment | |
# uses: actions/deploy-pages@v1 |