mirror of
https://github.com/rvtr/GodMode9i.git
synced 2025-11-02 00:11:07 -04:00
parent
ac977e6c64
commit
724ac280bb
155
.github/workflows/building.yml
vendored
Normal file
155
.github/workflows/building.yml
vendored
Normal file
@ -0,0 +1,155 @@
|
||||
name: C/C++ CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
release:
|
||||
types: [created]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
container: devkitpro/devkitarm:20200528
|
||||
name: "Build with Docker using devKitARM r54"
|
||||
outputs:
|
||||
commit_tag: ${{ steps.make-cias.outputs.commit_tag }}
|
||||
commit_message: ${{ steps.make-cias.outputs.commit_message }}
|
||||
steps:
|
||||
- name: "Checkout repo"
|
||||
uses: actions/checkout@v1
|
||||
- name: "Install tools"
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install p7zip-full python jq -y
|
||||
- name: "Build & Package GodMode9i"
|
||||
id: make-gm9i
|
||||
run: |
|
||||
make
|
||||
chmod +x make_cia
|
||||
./make_cia --srl="GodMode9i.nds" --id_0=$(git rev-parse --short=7 HEAD) --tikID=$(git rev-parse --short=16 HEAD)
|
||||
mkdir GodMode9i/
|
||||
cp GodMode9i.nds GodMode9i/
|
||||
cp GodMode9i.cia GodMode9i/
|
||||
7z a GodMode9i.7z GodMode9i/
|
||||
|
||||
mkdir -p ~/artifacts
|
||||
cp GodMode9i.7z ~/artifacts
|
||||
- name: "Publish build to GH Actions"
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
path: ~/artifacts/*
|
||||
name: "build"
|
||||
|
||||
# Only run this for non-PR jobs.
|
||||
publish_build_twlbot:
|
||||
runs-on: ubuntu-latest
|
||||
name: "Publish build to TWLBot"
|
||||
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
|
||||
needs: build
|
||||
env:
|
||||
COMMIT_TAG: ${{ needs.build.outputs.commit_tag }}
|
||||
COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
|
||||
outputs:
|
||||
current_date: ${{ steps.commit.outputs.current_date }}
|
||||
twlbot_commit: ${{ steps.commit.outputs.twlbot_commit }}
|
||||
steps:
|
||||
- name: "Checkout repo"
|
||||
uses: actions/checkout@v1
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: "build"
|
||||
path: "build"
|
||||
- name: Upload to RocketRobz/GodMode9i release
|
||||
if: ${{ startsWith(github.ref, 'refs/tags') }}
|
||||
run: |
|
||||
ID=$(jq --raw-output '.release.id' $GITHUB_EVENT_PATH)
|
||||
|
||||
for file in ${{ github.workspace }}/build/*; do
|
||||
AUTH_HEADER="Authorization: token ${{ secrets.GITHUB_TOKEN }}"
|
||||
CONTENT_LENGTH="Content-Length: $(stat -c%s $file)"
|
||||
CONTENT_TYPE="Content-Type: application/7z-x-compressed"
|
||||
UPLOAD_URL="https://uploads.github.com/repos/${{ github.repository }}/releases/$ID/assets?name=$(basename $file)"
|
||||
|
||||
curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
|
||||
done
|
||||
- name: "Commit and push to TWLBot/Builds"
|
||||
id: "commit"
|
||||
run: |
|
||||
CURRENT_DATE=$(date +"%Y%m%d-%H%M%S")
|
||||
echo "::set-output name=current_date::$CURRENT_DATE"
|
||||
|
||||
git config --global user.email "flamekat54@aol.com"
|
||||
git config --global user.name "TWLBot"
|
||||
git clone --depth 1 https://${{ secrets.TWLBOT_TOKEN }}@github.com/TWLBot/Builds.git
|
||||
cd Builds/extras
|
||||
cp ${{ github.workspace }}/build/* .
|
||||
git stage .
|
||||
git commit -m "GodMode9i | $COMMIT_TAG"
|
||||
git tag v$CURRENT_DATE
|
||||
git push origin master
|
||||
git tag v$CURRENT_DATE
|
||||
echo "::set-output name=twlbot_commit::$(git log --format=%H -1)"
|
||||
- name: Release to TWLBot/Builds
|
||||
run: |
|
||||
AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}"
|
||||
CONTENT_TYPE="Content-Type: application/json"
|
||||
API_URL="https://api.github.com/repos/TWLBot/Builds/releases"
|
||||
RELEASE_INFO="{\"tag_name\": \"v${{ steps.commit.outputs.current_date }}\", \"name\": \"GodMode9i | $COMMIT_TAG\", \"body\": \"$COMMIT_MESSAGE\", "prerelease": true}"
|
||||
|
||||
RESPONSE=$(curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_TYPE" "$API_URL" -d "$RELEASE_INFO")
|
||||
|
||||
ID=$(echo $RESPONSE | jq --raw-output '.id')
|
||||
|
||||
for file in ${{ github.workspace }}/build/*; do
|
||||
AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}"
|
||||
CONTENT_LENGTH="Content-Length: $(stat -c%s $file)"
|
||||
CONTENT_TYPE="Content-Type: application/7z-x-compressed"
|
||||
UPLOAD_URL="https://uploads.github.com/repos/TWLBot/Builds/releases/$ID/assets?name=$(basename $file)"
|
||||
|
||||
curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
|
||||
done
|
||||
|
||||
send_webhook_success:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [publish_build_twlbot, build]
|
||||
name: "Send Discord success webhook"
|
||||
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
|
||||
env:
|
||||
COMMIT_TAG: ${{ needs.build.outputs.commite_tag }}
|
||||
COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
|
||||
CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }}
|
||||
TWLBOT_COMMIT: ${{ needs.publish_build_twlbot.outputs.twlbot_commit }}
|
||||
steps:
|
||||
- name: "Checkout repo"
|
||||
uses: actions/checkout@v1
|
||||
- name: "Send success webhook"
|
||||
run: |
|
||||
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
|
||||
chmod +x send.sh
|
||||
./send.sh success ${{ secrets.WEBHOOK_URL }}
|
||||
|
||||
send_webhook_failure:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [publish_build_twlbot, build]
|
||||
name: "Send Discord failure webhook"
|
||||
if: ${{ failure() && !startsWith(github.ref, 'refs/pull') }}
|
||||
env:
|
||||
COMMIT_TAG: ${{ needs.build.outputs.commite_tag }}
|
||||
COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
|
||||
CURRENT_DATE: ${{ needs.publish_build_twlbot.outputs.current_date }}
|
||||
TWLBOT_COMMIT: ${{ needs.publish_build_twlbot.outputs.twlbot_commit }}
|
||||
steps:
|
||||
- name: "Checkout repo"
|
||||
uses: actions/checkout@v1
|
||||
- name: "Send failure webhook"
|
||||
run: |
|
||||
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
|
||||
chmod +x send.sh
|
||||
./send.sh failure ${{ secrets.WEBHOOK_URL }}
|
||||
Loading…
Reference in New Issue
Block a user