Every time I go Forge FE against a Zerg player recently, my opponent goes for the 7-Roach push on one base, followed by streaming Zerglings and Roaches into my base repeatedly. For some reason, I can't seem to hold this off even if I manage to hold on to my nexus in the early game. What's the trick to holding off this kind of all-in play? Since I went for the Forge FE, I don't have enough time to get warp-gate technology, and by the time the attack hits, I'm usually on 3 gateways, trying to chronoboost out Warpgate and Stalkers.
As you already mentioned this is an all-in! This means if he fails killing you, he is done for. After you scout his all in stop probe production and build more cannons to buy time. You do not need Warp gate technology. Just add more Warp gates and create Stalkers.
Your goal is to stay alive then you win.
Like with every strategy you struggle against: Watch some pro replays that include your scenario. It is important to watch many of those to extract the key elements. Get a buddy that plays this strategy and try to beat it. First try to counter it blind, as if you knew it would come. Then try to react after you scout him. If you feel comfortable make your friend switch between multiple builds. Your friend should be at your level of play or better.
Sometimes it helps if you are in voice chat and he warns you like:
Ask him what you could do better and repeat it all over again. This way you learn how to counter a certain strategy.
On maps with ramps into your natural, sentries to FF your ramp will stop this attack dead. If you place a FF every 15s, the zerg cannot attack up your ramp. If you have two gates producing sentries, you should have enough to keep it perma-FF until you have 5 sentries, which can keep the FFs up indefinitely.
On other maps, some extra cannons and stalkers should help. Stalkers outrange roaches, so keep them behind your cannons to kill the roaches who attack your cannons. If they try to move forward and attack your stalkers, you can pull injured stalkers back slightly to let the shields regenerate. A well placed FF can cut the 7 roaches into a 4 and a 3, where your stalkers and cannon should clean up the 3 roaches with ease.
You should have sufficient notice this attack is happening, the hallmarks are an early pool (11), gas at 15, and no expo. Then only a single pair of lings created with no zergling speed being researched. (Although some zergs will start ling speed, then cancel to build the roaches so you can't use that as a guarantee.)