Hacking Automatic builds of popular 3DS CFW/Tools

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France
Hi everyone.

I've configured a build infrastructure for 3DS Tools and CFWs, using Jenkins.
For every code change on these projects, they're automatically built and ready to be used.

Download server : https://jenkins.hakujou.fr/

PLEASE BE CAREFUL : THE BUILDS CAN BE DANGEROUS IF THERE'S A MISTAKE ON CODE
ONLY USE THIS IF YOU KNOW THE RISKS

Supported projects :
Supported exploits :
Removed :

FAQ :

"Why ? We already have nightly builds for those"
While that's true, this is a bit different. Existing websites with nightlies are using bash scripts to perform the builds and add them to websites. There's nothing wrong with that, but when there's enterprise-grade tools to do precisely this kind of tasks (named CI : Continuous Integration), I don't really see the point of using a script which may break against a real CI tool. So I use Jenkins, a very popular open-source CI tool used even in enterprises.

"I'd like <SomeHomebrew> to be added. Is it possible ?"
Sure ! Just asks me, with Git link of the project.
Please note I can't add Windows-only software (such as PKHeX) as they're using C# with Windows proprietary libs and therefore can't be built on Linux servers.
 
Last edited by GBHAKC75,

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal
Nice stuff! But shouldn't you name Corbenik as Skeith? You were compiling it as such, correct? As for how I'm pulling the files...

Well... It's simple, I currently just download the field from a URL set in a file in my server. I just need a static URL to Corbenik (Skeith, I guess).

About compiling other stuff..... Well, users know, or should know, that nightlies aren't stable builds and can indeed contain bugs. So IMO, it shouldn't matter too much.
 
Last edited by gnmmarechal,

Arubaro

Soulspace Guardian
Member
Joined
Sep 4, 2015
Messages
1,669
Trophies
0
Age
32
XP
586
Country
I'm not a big fan of nightlies, but is a fact that this helps debugging apps until the next stable version is released, so I'm grateful
 

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France
Nice stuff! But shouldn't you name Corbenik as Skeith? You were compiling it as such, correct? As for how I'm pulling the files...

Well... It's simple, I currently just download the field from a URL set in a file in my server. I just need a static URL to Corbenik (Skeith, I guess).

About compiling other stuff..... Well, users know, or should know, that nightlies aren't stable builds and can indeed contain bugs. So IMO, it shouldn't matter too much.

Thanks. I asked myself the very same question, but as @chaoskagami said, he doesn't plan to do releases for now and Skeith is just the name for Corbenik nightlies. The way I see it it's still Corbenik. I can change it pretty easily if that's a problem anyway :)

So you need an URL like "https://dl.hakujou.fr/Luma3DS/latest" ? I can do that with symlinks if needed, that's not a problem.

I understand, but some people just don't understand that and want to try the latest software anyway. While it should be avoided, I still fear the fact that someone will try to install some new A9LH and brick his 3DS... I'll focus on less "risky" softwares for now (such as FBI) and see later for more risky ones :)

I'm not a big fan of nightlies, but is a fact that this helps debugging apps until the next stable version is released, so I'm grateful

It's pretty much the opinion that I have. Jenkins is really great because it provides console output for every builds so it's easy to see what breaks, which commit breaks it and why (which is the point of CI), that's my main reason to have done this project.
I'd like to open Jenkins to everyone but it's connected to my AD setup and I don't really want to expose my users to everyone :/
 

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal
Thanks. I asked myself the very same question, but as @chaoskagami said, he doesn't plan to do releases for now and Skeith is just the name for Corbenik nightlies. The way I see it it's still Corbenik. I can change it pretty easily if that's a problem anyway :)

So you need an URL like "https://dl.hakujou.fr/Luma3DS/latest" ? I can do that with symlinks if needed, that's not a problem.

I understand, but some people just don't understand that and want to try the latest software anyway. While it should be avoided, I still fear the fact that someone will try to install some new A9LH and brick his 3DS... I'll focus on less "risky" softwares for now (such as FBI) and see later for more risky ones :)



It's pretty much the opinion that I have. Jenkins is really great because it provides console output for every builds so it's easy to see what breaks, which commit breaks it and why (which is the point of CI), that's my main reason to have done this project.
I'd like to open Jenkins to everyone but it's connected to my AD setup and I don't really want to expose my users to everyone :/
Something like EasyRPG Player would be great, if you did something like:
http://dl.hakujou.fr/Corbenik/latest-build.zip for the build
and something like
http://dl.hakujou.fr/Corbenik/latestver for the actual commit/version name, I suppose?
 
  • Like
Reactions: GBHAKC75

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal
  • Like
Reactions: GBHAKC75

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal
Okay, I finally exposed Jenkins, it's easier and I managed to separate my users.
It's the exact same structure for me : https://jenkins.hakujou.fr

The dev can also see console output this way, it might be useful to them.

Have fun ! :)
Awesome, thanks! This will be implemented soon (this afternoon), and then, after getting someone to test it (as I didn't bring my 3DS with me and won't have it until the 3rd of January x.x), I'll add it to the stable updater.

--------------------- MERGED ---------------------------

By the way, would it be possible to, instead of buildNumber, somehow get the commit?
 
  • Like
Reactions: GBHAKC75

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France
Awesome, thanks! This will be implemented soon (this afternoon), and then, after getting someone to test it (as I didn't bring my 3DS with me and won't have it until the 3rd of January x.x), I'll add it to the stable updater.

--------------------- MERGED ---------------------------

By the way, would it be possible to, instead of buildNumber, somehow get the commit?

You could parse it from here : https://jenkins.hakujou.fr/job/3DS/job/Corbenik/6/git/

But a "cleaner" way to handle this would be to use Jenkins API, like this : https://jenkins.hakujou.fr/job/3DS/job/Corbenik/lastBuild/api/xml?xpath=//lastBuiltRevision/SHA1
 
Last edited by GBHAKC75,
  • Like
Reactions: gnmmarechal

keyra

Spoderman self proclamed fan
Member
Joined
Dec 23, 2008
Messages
820
Trophies
0
XP
635
Country
France
i must be stupid but how do i know if your luma is older than the one one alex's builds?
 

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France
i must be stupid but how do i know if your luma is older than the one one alex's builds?

You can compare against commit number. Look in GitHub which one is the latest and which site has it.
But as said, it builds automatically (and very quickly) the project at any commit so the latest version should always be there.
 
  • Like
Reactions: gnmmarechal

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France
Actually, I might just use your Luma3DS URLs in StarUpdater-UN. I'll update Corbenik CFW Updater: RE, and then I'll look into Luma.

--------------------- MERGED ---------------------------


Did it go down?

EDIT: nvm, my internet's crap.

You scared me ! :blush:

IMHO you really should considering using Jenkins API for those projects. It's waaaaaay cleaner than parsing project window.
 

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal

GBHAKC75

Well-Known Member
OP
Member
Joined
Jan 26, 2008
Messages
406
Trophies
0
XP
563
Country
France

gnmmarechal

Well-Known Member
Member
GBAtemp Patron
Joined
Jul 13, 2014
Messages
6,040
Trophies
2
Age
25
Location
https://gs2012.xyz
Website
gs2012.xyz
XP
6,002
Country
Portugal
No it doesn't, but I can zip some files through build process if needed.
Is there a problem with that zip, though ? Looks fine to me.

EDIT : Oh, the problem is the "out" folder in it ? I'll look into it.
Yep. The updater function to extract both skeith and corbenik is exactly the same, with only the skeith directory changing, so this zip having a different structure would require me to make another function for Skeith.
The zip should have the same structure as Corbenik/Skeith, with everything directly inside it.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • NinStar @ NinStar:
    nes remix 1 had the bad one, nes remix 2 had the good one
  • SylverReZ @ SylverReZ:
    @genistopitauniverfrocrami, What drugs is this dude on?
    +1
  • NinStar @ NinStar:
    CRAZY HAMBURGER
  • The Real Jdbye @ The Real Jdbye:
    @NinStar both nes remix 1 and 2 had some stinkers in there
    +1
  • The Real Jdbye @ The Real Jdbye:
    but at least 2 doesn't have sports games
  • The Real Jdbye @ The Real Jdbye:
    loved nes remix, but hated having to play Baseball, Tennis and Golf in order to progress
    +1
  • The Real Jdbye @ The Real Jdbye:
    or fucking Clu Clu Land for that matter
  • Psionic Roshambo @ Psionic Roshambo:
    Not a big fan of NES kid Icarus either... I know it was popular but I didn't care for it.
  • Psionic Roshambo @ Psionic Roshambo:
    Yesterday I learned my BD Burner drive can burn CD's at 56X lol
  • cearp @ cearp:
    What stuff were you burning?
    I used to burn tons of dvds (data files) many years ago, but haven't burnt a disk in ages.
  • Psionic Roshambo @ Psionic Roshambo:
    My car actually reads MP3 CD's lol
  • Psionic Roshambo @ Psionic Roshambo:
    So mix CDs for myselt :)
  • Psionic Roshambo @ Psionic Roshambo:
    Pantera, Metallica, Hollywood Undead, Five Finger Death Punch, some others lol
  • Psionic Roshambo @ Psionic Roshambo:
    I can put like 90 songs on a CD lol
  • The Real Jdbye @ The Real Jdbye:
    if only it could read dvds then you would just need 1 disc
    +1
  • BakerMan @ BakerMan:
    i tell ya what, i could go for a fuckin gyro right about now
    +1
  • cearp @ cearp:
    I hope your brother is doing ok Mr BakerMan
    +1
  • cearp @ cearp:
    and Psi - I had a cd player / radio that played mp3 cds once, very cool
    +1
  • Psionic Roshambo @ Psionic Roshambo:
    BakerMan yeah me too.... maybe that's gonna be dinner for me there is this place near me I have been dying to try and they have them lol
  • K3Nv2 @ K3Nv2:
    I miss usb mp3 players they were shit but at the time a go to
  • Psionic Roshambo @ Psionic Roshambo:
    @The Real Jdbye, I thought about that and I have blank DVD's and Blurays but honestly after like 90 songs I just listen to it a couple of hundred times toss it out and burn something else or have like 2-3 CD's. Florida here the heat in the car tends to ruin the CD's after like a few months even commercial pressed ones don't last too long.
  • The Real Jdbye @ The Real Jdbye:
    my music collection is just too big, i require variety
    The Real Jdbye @ The Real Jdbye: my music collection is just too big, i require variety