run_build #1940
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: CI-compile | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
repository_dispatch: | |
types: [run_build] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: ghcr.io/ps2homebrew/ps2homebrew:main | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v4 | |
- run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
git fetch --prune --unshallow | |
- name: Compile -> make clean release | |
run: make --trace clean release | |
- name: Create detailed changelog | |
run: sh ./make_changelog.sh | |
- name: Upload release artifact ELF | |
if: ${{ success() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OPNPS2LD | |
path: | | |
OPNPS2LD-*.ELF | |
- name: Upload release artifact info | |
if: ${{ success() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: INFO | |
path: | | |
DETAILED_CHANGELOG | |
CREDITS | |
LICENSE | |
README.md | |
build-variants: | |
strategy: | |
fail-fast: false | |
matrix: | |
extra: [EXTRA_FEATURES=0, EXTRA_FEATURES=1] | |
pademu: [PADEMU=0, PADEMU=1] | |
runs-on: ubuntu-latest | |
container: ghcr.io/ps2homebrew/ps2homebrew:main | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v4 | |
- run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
git fetch --prune --unshallow | |
- name: Get version | |
run: | | |
echo "OPL_VERSION=$(make oplversion)" >> $GITHUB_ENV | |
- name: Compile -> make ${{ matrix.extra }} ${{ matrix.pademu }} ${{ matrix.extra }} NOT_PACKED=1 | |
run: | | |
make --trace ${{ matrix.pademu }} ${{ matrix.extra }} NOT_PACKED=1 | |
mv opl.elf OPNPS2LD-${{ env.OPL_VERSION }}-${{ matrix.pademu }}-${{ matrix.extra }}.ELF | |
- name: Create detailed changelog | |
run: sh ./make_changelog.sh | |
- name: Upload variants artifact ELF | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OPNPS2LD-VARIANTS ${{ matrix.pademu }} ${{ matrix.extra }} | |
path: OPNPS2LD*.ELF | |
merge-variants: | |
runs-on: ubuntu-latest | |
needs: build-variants | |
steps: | |
- name: Merge Artifacts | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: OPNPS2LD-VARIANTS | |
pattern: OPNPS2LD-VARIANTS* | |
delete-merged: true | |
build-lang: | |
runs-on: ubuntu-latest | |
container: ghcr.io/ps2homebrew/ps2homebrew:main | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v4 | |
- run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
git fetch --prune --unshallow | |
- name: Compile -> make download_lng languages | |
run: make --trace download_lng languages | |
- name: Create artifact | |
run: sh ./lng_pack.sh | |
- name: Upload release artifact | |
if: ${{ success() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: OPNPS2LD-LANGS | |
path: | | |
OPNPS2LD-LANGS-*.zip | |
build-debug: | |
strategy: | |
fail-fast: false | |
matrix: | |
debug: [iopcore_debug, ingame_debug, eesio_debug, iopcore_ppctty_debug, ingame_ppctty_debug, DTL_T10000=1] | |
# container_commit: [":main", "@sha256:1f00689809455d43b520e4cd4eea00c6be56d71819ae38efc6b55b56464cbd1e"] Replace with desired docker image hash or tag | |
container_commit: [":main"] | |
runs-on: ubuntu-latest | |
container: ghcr.io/ps2homebrew/ps2homebrew${{ matrix.container_commit }} | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v4 | |
- run: | | |
git config --global --add safe.directory "$GITHUB_WORKSPACE" | |
git fetch --prune --unshallow | |
- name: Get version | |
run: | | |
echo "OPL_VERSION=$(make oplversion)" >> $GITHUB_ENV | |
SHORT_COMMIT="${{ matrix.container_commit }}" | |
# Extract the last 4 characters | |
SHORT_COMMIT=${SHORT_COMMIT: -4} | |
echo "SHORT_COMMIT=$SHORT_COMMIT" >> $GITHUB_ENV | |
- name: Compile -> make debug | |
run: | | |
make ${{ matrix.debug }} --trace | |
mv opl.elf opl-${{ matrix.debug }}-${{ env.OPL_VERSION }}-${{ env.SHORT_COMMIT }}.elf | |
- name: Upload variants artifact ELF | |
uses: actions/upload-artifact@v4 | |
with: | |
name: opl-${{ matrix.debug }}-${{ env.OPL_VERSION }}-${{ env.SHORT_COMMIT }} | |
path: opl-*.elf | |
merge-debug: | |
runs-on: ubuntu-latest | |
needs: build-debug | |
steps: | |
- name: Merge Artifacts | |
uses: actions/upload-artifact/merge@v4 | |
with: | |
name: OPNPS2LD-DEBUG | |
pattern: opl-* | |
delete-merged: true | |
release: | |
needs: [build, build-variants, build-lang] | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/master' | |
env: | |
USERNAME: ${{ secrets.USERNAME }} | |
PASSWORD: ${{ secrets.PASSWORD }} | |
steps: | |
- name: git checkout | |
uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Get version | |
run: | | |
echo "OPL_VERSION=$(make oplversion)" >> $GITHUB_ENV | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
- name: Prepare artifacts for release | |
run: | | |
echo packing release of OPL ${{ env.OPL_VERSION }} | |
cp INFO/* OPNPS2LD/ | |
cp INFO/* OPNPS2LD-VARIANTS/ | |
7z a -t7z OPNPS2LD-${{ env.OPL_VERSION }}.7z OPNPS2LD/* | |
7z a -t7z OPNPS2LD-VARIANTS-${{ env.OPL_VERSION }}.7z OPNPS2LD-VARIANTS/* | |
7z a -t7z OPNPS2LD-LANGS-${{ env.OPL_VERSION }}.7z OPNPS2LD-LANGS/* | |
cp -f OPNPS2LD-${{ env.OPL_VERSION }}.7z OPNPS2LD.7z | |
cp -f OPNPS2LD-VARIANTS-${{ env.OPL_VERSION }}.7z OPNPS2LD-VARIANTS.7z | |
cp -f OPNPS2LD-LANGS-${{ env.OPL_VERSION }}.7z OPNPS2LD-LANGS.7z | |
- name: Create prerelease | |
if: github.ref == 'refs/heads/master' | |
uses: mathieucarbou/marvinpinto-action-automatic-releases@latest | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: true | |
automatic_release_tag: "latest" | |
title: "${{ steps.version.outputs.version }}" | |
files: | | |
OPNPS2LD-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD-VARIANTS-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD-LANGS-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD.7z | |
OPNPS2LD-VARIANTS.7z | |
OPNPS2LD-LANGS.7z | |
- name: Create release | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: mathieucarbou/marvinpinto-action-automatic-releases@latest | |
with: | |
repo_token: "${{ secrets.GITHUB_TOKEN }}" | |
prerelease: "${{ contains(github.ref, '-rc') }}" | |
title: "${{ env.OPL_VERSION }}" | |
files: | | |
OPNPS2LD-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD-VARIANTS-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD-LANGS-${{ env.OPL_VERSION }}.7z | |
OPNPS2LD.7z | |
OPNPS2LD-VARIANTS.7z | |
OPNPS2LD-LANGS.7z | |
- name: Upload pre-release to Mega | |
if: github.ref == 'refs/heads/master' && env.USERNAME != null | |
uses: Difegue/action-megacmd@master | |
with: | |
args: put -c OPNPS2LD.7z /OPL/Pre-Release/${{ env.OPL_VERSION }}/run_${{ github.run_number }}/ | |
- name: Upload release to Mega | |
if: startsWith(github.ref, 'refs/tags/v') && env.USERNAME != null | |
uses: Difegue/action-megacmd@master | |
with: | |
args: put -c OPNPS2LD.7z /OPL/Release/${{ env.OPL_VERSION }}/ |