Skip to content

Commit

Permalink
add ci/cd
Browse files Browse the repository at this point in the history
  • Loading branch information
joshraphael committed Jan 31, 2025
1 parent f3ffb00 commit 7e2e938
Show file tree
Hide file tree
Showing 7 changed files with 164 additions and 1 deletion.
6 changes: 6 additions & 0 deletions .github/dotnet-sdk.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/bash

INSTALL_DIR="${HOME}/.wine/drive_c/Programs/dotnet"
mkdir -p ${INSTALL_DIR}
wget -O "${INSTALL_DIR}/dotnet-sdk.zip" "https://download.visualstudio.microsoft.com/download/pr/5b2c6cee-abe2-4734-a099-729a346205e7/b5776361ebee2e1eeed9be4aad944652/dotnet-sdk-6.0.428-win-x64.zip"
unzip "${INSTALL_DIR}/dotnet-sdk.zip" -d "${INSTALL_DIR}"
5 changes: 5 additions & 0 deletions .github/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
module ra-code-notes

go 1.23.0

require github.com/joshraphael/go-retroachievements v1.0.1
2 changes: 2 additions & 0 deletions .github/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
github.com/joshraphael/go-retroachievements v1.0.1 h1:fhH9y8VIBSDhAumvBVEqsCkJXQ+C/pgdq5aMHNJ2vBY=
github.com/joshraphael/go-retroachievements v1.0.1/go.mod h1:C+9vQbOqyRJmnFt8XIJ5gwRot+AZS/acnaESp45jtCc=
34 changes: 34 additions & 0 deletions .github/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package main

import (
"encoding/json"
"fmt"
"os"

"github.com/joshraphael/go-retroachievements"
"github.com/joshraphael/go-retroachievements/models"
)

func main() {
client := retroachievements.New(retroachievements.ClientConfig{
Host: retroachievements.RetroAchievementHost,
UserAgent: "go-retroachievements/v1.0.1",
})
notes, err := client.GetCodeNotes(models.GetCodeNotesParameters{
GameID: 18190,
})
if err != nil {
os.Exit(1)
fmt.Println("error getting code notes")
return
}

jsonNotes, err := json.Marshal(notes.CodeNotes)
if err != nil {
os.Exit(1)
fmt.Println("error converting code notes to json")
return
}

fmt.Println(string(jsonNotes))
}
112 changes: 112 additions & 0 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
name: Test

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "**" ]

permissions:
contents: write
pull-requests: write

jobs:
compile:
name: compile
runs-on: ubuntu-latest
env:
GAME_ID: 18190
RATOOLS_VERSION: v1.15.0
RALIBRETRO_DIR: ~/Installs/RALibretro-x64 # same as Makefile
DOTNET_ROOT_X64: C:\\Programs\\dotnet
DOTNET_ROOT: C:\\Programs\\dotnet
WINEPATH: C:\\Programs\\dotnet
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Install Go
uses: actions/setup-go@v5
with:
go-version: '^1.23.0'

- name: Set ENV vars for github
run: echo "RATOOLS_DIR=~/Installs/RATools-${{env.RATOOLS_VERSION}}" >> $GITHUB_ENV # same as Makefile

- name: Create folders
run: mkdir -p ${{env.RATOOLS_DIR}} && mkdir -p ${{env.RALIBRETRO_DIR}}/RACache/Data

- name: Install wine
run: sudo apt-get update && sudo apt-get install -y wine

- name: Set Winecfg
run: winecfg /v win10

- name: Get RATools CLI
run: wget -O ${{env.RATOOLS_DIR}}/RATools-${{env.RATOOLS_VERSION}}.zip "https://github.com/Jamiras/RATools/releases/download/${{env.RATOOLS_VERSION}}/RATools-${{env.RATOOLS_VERSION}}.zip"

- name: Unpack RATools
run: unzip ${{env.RATOOLS_DIR}}/RATools-${{env.RATOOLS_VERSION}}.zip -d ${{env.RATOOLS_DIR}}

- name: Get .NET SDK 6.0.428
run: bash .github/dotnet-sdk.sh

- name: Get Code Notes
run: make notes

- name: Compile Code
run: make compile

- name: Upload Code Notes
uses: actions/upload-artifact@v4
with:
name: notes-json
path: ${{env.RALIBRETRO_DIR}}/RACache/Data/${{env.GAME_ID}}-Notes.json

- name: Upload Achievement and Leaderboard Code
uses: actions/upload-artifact@v4
with:
name: user-text
path: ${{env.RALIBRETRO_DIR}}/RACache/Data/${{env.GAME_ID}}-User.txt

- name: Upload Rich Presence
uses: actions/upload-artifact@v4
with:
name: rich-text
path: ${{env.RALIBRETRO_DIR}}/RACache/Data/${{env.GAME_ID}}-Rich.txt

autocr:
name: AutoCR
needs: compile
runs-on: ubuntu-latest
env:
GAME_ID: 18190
steps:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'

- name: Use autocr-cli
uses: actions/checkout@v4
with:
repository: joshraphael/autocr-cli
ref: v1.1.3

- name: Download Code Notes
uses: actions/download-artifact@v4
with:
name: notes-json

- name: Download Achievement and Leaderboard Code
uses: actions/download-artifact@v4
with:
name: user-text

- name: Download Rich Presence
uses: actions/download-artifact@v4
with:
name: rich-text

- name: Run AutoCR
run: ./index.js --notes ${{env.GAME_ID}}-Notes.json --user ${{env.GAME_ID}}-User.txt --rich ${{env.GAME_ID}}-Rich.txt --severity error --report
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,7 @@ load:
cp saves/chapter${chapter}/PARAM.SFO ${RALIBRETRO_DIR}/Saves/PSP/SAVEDATA/${EUROPE}
cp saves/chapter${chapter}/PARAM.SFO ${RALIBRETRO_DIR}/Saves/PSP/SAVEDATA/${USA}
cp saves/chapter${chapter}/SAVE.S ${RALIBRETRO_DIR}/Saves/PSP/SAVEDATA/${EUROPE}
cp saves/chapter${chapter}/SAVE.S ${RALIBRETRO_DIR}/Saves/PSP/SAVEDATA/${USA}
cp saves/chapter${chapter}/SAVE.S ${RALIBRETRO_DIR}/Saves/PSP/SAVEDATA/${USA}

notes:
cd .github/ && go get -t ./... && go run main.go > ${RALIBRETRO_DIR}/RACache/Data/${GAME_ID}-Notes.json
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ Retro Achievements set design document for the game [Where is my Heart?](https:/
|Title|Command|Parameters|Description|
|-|-|-|-|
|Compile|`make compile`|None|Compile RAScript into achievement logic|
|Code Notes|`make notes`|None|Use the API to download the games code notes|
|Load Save|`make load chapter=<number>`|`number` - chapter number|Load specified chapter save file into emulator (both Europe and USA versions)|

0 comments on commit 7e2e938

Please sign in to comment.