cemu_graphic_packs/.github/workflows/build.yml
2024-10-12 16:16:28 +02:00

51 lines
2.2 KiB
YAML

name: Build Process
# Don't try to build other branches then master or when a pull request changes something outside of the graphic packs source folders.
on:
push:
branches:
- master
paths:
- 'Enhancements/**'
- 'Resolutions/**'
- 'Mods/**'
- 'Workarounds/**'
- 'src/**'
jobs:
build:
# Configuration
runs-on: ubuntu-latest
name: Build Graphic Packs
# Build script
steps:
# Clone latest copy of repository
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Zip all packs
run: |
cd $GITHUB_WORKSPACE ;
cd Enhancements && zip -r -q -9 "../graphicPacks.zip" ./* && cd .. ;
cd Resolutions && zip -r -q -9 "../graphicPacks.zip" ./* && cd .. ;
cd Mods && zip -r -q -9 "../graphicPacks.zip" ./* && cd .. ;
cd Workarounds && zip -r -q -9 "../graphicPacks.zip" ./* && cd .. ;
cd src && zip -r -q -9 "../graphicPacks.zip" ./* && cd ..
- name: Create new release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event_name == 'push'
run: |
cd $GITHUB_WORKSPACE ;
RELEASE_NUMBER="$(($(curl -s "https://api.github.com/repos/$GITHUB_REPOSITORY/releases/latest" | jq -r ".name" | cut -c 22-)+1))" ;
jq -n --arg releaseTag "Github$RELEASE_NUMBER" --arg releaseTitle "Cemu Graphic Packs: v$RELEASE_NUMBER" --arg releaseBody "$(git log -1 --format='Commited at %ci by **%cn** in commit %h%n### %s%n```%n%b%n```%n')" '{"tag_name":$releaseTag,"target_commitish": "master","name": $releaseTitle,"body": $releaseBody,"draft": false,"prerelease": false}' > releaseBody.json ;
RELEASE_ID=$(curl -X POST -H 'Content-Type:application/json' -H "Authorization: Bearer $GITHUB_TOKEN" "https://api.github.com/repos/$GITHUB_REPOSITORY/releases" -d "@releaseBody.json" | jq -r ".id") ;
curl -X POST -H 'Content-Type:application/json' -H "Authorization: Bearer $GITHUB_TOKEN" "https://uploads.github.com/repos/$GITHUB_REPOSITORY/releases/$RELEASE_ID/assets?name=graphicPacks$RELEASE_NUMBER.zip" --upload-file "graphicPacks.zip"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: graphicPacks
path: "graphicPacks.zip"