-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
b6d0c45
commit 82b08f4
Showing
5 changed files
with
137 additions
and
250 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
name: "Setup canary ndk" | ||
description: "Sets up canary ndk" | ||
outputs: | ||
ndk-path: | ||
value: ${{ steps.path.outputs.path }} | ||
description: "Output path of the ndk" | ||
cache-hit: | ||
value: ${{ steps.cache.outputs.cache-hit }} | ||
description: "Whether a cache hit occurred for the ndk" | ||
runs: | ||
using: "composite" | ||
steps: | ||
- name: NDK cache | ||
id: cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${HOME}/android-ndk-r27-canary/ | ||
key: ${{ runner.os }}-ndk-r27-canary | ||
|
||
- name: Download canary ndk | ||
if: ${{ !steps.cache.outputs.cache-hit }} | ||
env: | ||
CANARY_URL: https://github.com/QuestPackageManager/ndk-canary-archive/releases/download/27.0.1/android-ndk-10883340-linux-x86_64.zip | ||
run: wget ${CANARY_URL} -O ${HOME}/ndk.zip | ||
shell: bash | ||
|
||
- name: Unzip ndk | ||
if: ${{ !steps.cache.outputs.cache-hit }} | ||
run: 7z x "${HOME}/ndk.zip" -o"${HOME}/" | ||
shell: bash | ||
|
||
- name: Set output | ||
id: path | ||
shell: bash | ||
run: echo "path=${HOME}/android-ndk-r27-canary" >> ${GITHUB_OUTPUT} |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,84 +1,108 @@ | ||
name: NDK build | ||
|
||
env: | ||
module_id: songloader | ||
qmodName: SongLoader | ||
|
||
on: | ||
workflow_dispatch: | ||
push: | ||
branches-ignore: | ||
- 'version-v*' | ||
tags: | ||
- "v*" | ||
branches: | ||
- 'main' | ||
- 'dev/*' | ||
- 'feat/*' | ||
- 'fix/*' | ||
paths-ignore: | ||
- '**.yml' | ||
- '!.github/workflows/build-ndk.yml' | ||
- '**.json' | ||
- '!qpm.json' | ||
- '!mod.template.json' | ||
- '**.txt' | ||
- '!CMakeLists.txt' | ||
- '**.ps1' | ||
- '!build.ps1' | ||
- '!createqmod.ps1' | ||
- '**.md' | ||
- '.gitignore' | ||
pull_request: | ||
branches: main | ||
|
||
env: | ||
module_id: songloader | ||
qmod_name: SongLoader | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
name: Checkout | ||
with: | ||
submodules: true | ||
lfs: true | ||
|
||
- uses: seanmiddleditch/gha-setup-ninja@v3 | ||
|
||
# Use canary NDK to avoid lesser known compile bugs | ||
- name: Setup canary NDK | ||
id: setup-ndk | ||
uses: ./.github/actions/canary-ndk | ||
|
||
- name: Create ndkpath.txt | ||
run: | | ||
echo "$ANDROID_NDK_LATEST_HOME" > ${GITHUB_WORKSPACE}/ndkpath.txt | ||
echo ${{ steps.setup-ndk.outputs.ndk-path }} > ${GITHUB_WORKSPACE}/ndkpath.txt | ||
cat ${GITHUB_WORKSPACE}/ndkpath.txt | ||
- name: Get QPM | ||
if: steps.cache-qpm.outputs.cache-hit != 'true' | ||
uses: dawidd6/action-download-artifact@v2 | ||
with: | ||
github_token: ${{secrets.GITHUB_TOKEN}} | ||
workflow: cargo-build.yml | ||
name: linux-qpm | ||
path: QPM | ||
repo: QuestPackageManager/QPM.CLI | ||
|
||
- name: QPM Collapse | ||
# get version from pushed tag | ||
- name: Extract version | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
id: version | ||
run: | | ||
chmod +x ./QPM/qpm | ||
./QPM/qpm collapse | ||
- name: QPM Dependencies Cache | ||
id: cache-qpm-deps | ||
uses: actions/cache@v2 | ||
env: | ||
cache-name: cache-qpm-deps | ||
echo "TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_OUTPUT} | ||
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> ${GITHUB_OUTPUT} | ||
# if we don't have a tag, don't do anything special | ||
- name: Setup qpm | ||
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | ||
uses: Fernthedev/qpm-action@main | ||
with: | ||
path: /home/runner/.local/share/qpm/cache | ||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('qpm.json') }} | ||
restore-keys: | | ||
${{ runner.os }}-build-${{ env.cache-name }}- | ||
${{ runner.os }}-build- | ||
${{ runner.os }}- | ||
- name: QPM Restore | ||
run: | | ||
./QPM/qpm restore | ||
workflow_token: ${{ secrets.GITHUB_TOKEN }} | ||
restore: true | ||
cache: true | ||
publish: false | ||
|
||
- name: Build | ||
run: | | ||
cd ${GITHUB_WORKSPACE} | ||
./QPM/qpm qmod build | ||
pwsh -Command ./build.ps1 | ||
# if we have a tag, we are making a qpm release | ||
- name: Setup qpm for release | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
uses: Fernthedev/qpm-action@main | ||
with: | ||
workflow_token: ${{ secrets.GITHUB_TOKEN }} | ||
restore: true | ||
cache: true | ||
publish: true | ||
publish_token: ${{ secrets.QPM_KEY }} | ||
version: ${{ steps.version.outputs.VERSION }} | ||
tag: ${{ steps.version.outputs.TAG }} | ||
qpm_release_bin: true | ||
qpm_debug_bin: true | ||
qpm_qmod: ${{ env.qmod_name }}.qmod | ||
|
||
- name: Create Qmod | ||
- name: Build & Create Qmod | ||
run: | | ||
pwsh -Command ./createqmod.ps1 ${{env.qmodName}} | ||
cd ${GITHUB_WORKSPACE} | ||
qpm s qmod | ||
- name: Get Library Name | ||
id: libname | ||
run: | | ||
cd ./build/ | ||
pattern="lib${module_id}*.so" | ||
files=( $pattern ) | ||
echo ::set-output name=NAME::"${files[0]}" | ||
echo "NAME=${files[0]}" >> ${GITHUB_OUTPUT} | ||
- name: Rename debug artifact | ||
run: mv "./build/debug/${{ steps.libname.outputs.NAME }}" "./build/debug_${{ steps.libname.outputs.NAME }}" | ||
|
||
- name: Upload non-debug artifact | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
|
@@ -90,12 +114,26 @@ jobs: | |
uses: actions/upload-artifact@v2 | ||
with: | ||
name: debug_${{ steps.libname.outputs.NAME }} | ||
path: ./build/debug/${{ steps.libname.outputs.NAME }} | ||
path: ./build/debug_${{ steps.libname.outputs.NAME }} | ||
if-no-files-found: error | ||
|
||
- name: Upload qmod artifact | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{env.qmodName}}.qmod | ||
path: ./${{ env.qmodName }}.qmod | ||
name: ${{env.qmod_name}}.qmod | ||
path: ./${{ env.qmod_name }}.qmod | ||
if-no-files-found: error | ||
|
||
# if we had a tag, we should make a release | ||
- name: Upload release artifacts | ||
if: startsWith(github.ref, 'refs/tags/v') | ||
id: upload_file_release | ||
uses: softprops/[email protected] | ||
with: | ||
tag_name: ${{ github.event.inputs.version }} | ||
files: | | ||
./build/${{ steps.libname.outputs.NAME }} | ||
./build/debug_${{ steps.libname.outputs.NAME }} | ||
./${{ env.qmod_name }}.qmod | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
Oops, something went wrong.