Skip to content

Conversation

@crisecheverria
Copy link
Owner

  • Increase memory limits (128m → 512m) and CPU quota for production
  • Add persistent Docker volumes for Go build cache (go-mod-cache, go-build-cache)
  • Optimize Docker image with pre-warmed dependencies
  • Improve Go executor with build optimizations (-ldflags -s -w)
  • Add production-aware timeouts (35s → 120s for Docker, 45s → 90s for native)
  • Enable native Go executor preference for production
  • Add build script for optimized Go runner environment

Performance improvement: ~95% reduction in execution time (60s+ → 1.3s) Resolves production timeout issues with Go challenges

Cristian Echeverria added 2 commits December 19, 2025 13:24
- Increase memory limits (128m → 512m) and CPU quota for production
- Add persistent Docker volumes for Go build cache (go-mod-cache, go-build-cache)
- Optimize Docker image with pre-warmed dependencies
- Improve Go executor with build optimizations (-ldflags -s -w)
- Add production-aware timeouts (35s → 120s for Docker, 45s → 90s for native)
- Enable native Go executor preference for production
- Add build script for optimized Go runner environment

Performance improvement: ~95% reduction in execution time (60s+ → 1.3s)
Resolves production timeout issues with Go challenges
@github-actions
Copy link

Backend Test Coverage Report

Coverage after merging bugfix/improve-golang-running into main will be
23.74%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src/config
   index.ts60.56%66.67%100%42.11%103, 115, 49, 53, 58–60, 60, 60, 63, 63, 63, 63–64, 68–70, 73, 73–74, 77, 83, 87, 90, 92–93, 93, 96
src/db
   index.ts0%0%0%0%1, 11, 11, 11, 14, 17, 19, 2, 22–23, 26–27, 30–31, 4–6, 8, 8, 8
src/middleware
   auth.ts57.14%20%100%63.64%34–35, 46, 46, 46–47, 52, 52–53, 61, 68–69
   errorHandler.ts0%0%0%0%10–11, 13, 13, 3
src/models
   Badge.ts100%100%100%100%
   Certificate.ts100%100%100%100%
   Challenge.ts81.25%0%100%85.71%101, 92, 94
   Concept.ts100%100%100%100%
   Submission.ts100%100%100%100%
   Tutorial.ts0%100%100%0%1, 36, 47, 54, 81–82, 84
   User.ts100%100%100%100%
   index.ts75%100%50%100%
src/routes
   aiAssistance.ts0%0%0%0%11–13, 16, 16, 16, 16, 16–17, 2, 21–22, 22–23, 27, 3, 36–37, 37, 4, 42, 45–46, 48, 48, 5, 54–55, 60, 66–67, 7, 71, 8
   auth.ts0%0%0%0%1, 10, 102–103, 11, 113, 116, 116, 116–117, 119, 12, 120, 120–121, 121, 123, 123, 131, 131, 131–132, 136–138, 14, 14, 140–141, 148–149, 15, 164, 169–170, 170–171, 175–176, 18, 183, 189, 19, 192–193, 195, 195–197, 2, 203, 207, 210, 210, 210, 210–211, 211, 211, 213, 213–214, 217–219, 223–224, 227–228, 238, 240, 242–243, 243–244, 244, 246, 246, 25, 254, 256, 256, 26, 261, 3–4, 41, 46–47, 47–48, 5, 52–53, 60, 66, 69, 7, 70, 72, 72–74, 80, 84, 87, 87, 87, 87–88, 88, 88, 90, 90–94, 98–99
   certificates.ts0%0%0%0%1, 100, 102, 102, 109, 113–116, 119, 124, 124–125, 128, 13, 130–131, 133, 133, 139, 14–15, 18, 2, 20, 22–23, 25, 25, 3, 32, 36–39, 4, 41, 41–42, 46, 51, 51–52, 59, 6, 61, 61–62, 68, 68, 68, 71–73, 77, 77–78, 87, 9, 91, 94, 99
   challenges.ts50%43.55%27.27%54.09%100, 102, 104, 104, 104, 104–105, 108, 108, 108, 108–109, 114, 114, 114, 114–115, 119–120, 120–121, 123, 123, 123–124, 127, 133, 136–137, 137–138, 147, 153–154, 157, 157–158, 162–164, 164–165, 174–176, 179, 179, 179, 179–180, 182–183, 185, 185, 185, 188, 192, 192–193, 198, 203, 203–204, 208–209, 212, 212–213, 223, 229–230, 232, 232, 265, 267, 270, 272, 272, 272, 272–273, 350–351, 357–359, 370–371, 377–378, 384–385, 388–389, 392–393, 395, 401–402, 402, 402–403, 408, 410, 410, 97–99
   dashboard.ts0%0%0%0%1, 101–103, 105, 105–107, 110–111, 114, 116, 118, 12, 125, 127–128, 133, 14–16, 16–17, 2, 22, 27, 3, 30–32, 35, 38, 38, 38–39, 4, 40, 44, 46, 46, 49, 49, 54, 54, 54–55, 6, 62, 62–64, 68, 70, 72, 84, 88–89, 9, 91–92, 98
   health.ts0%100%0%0%1, 3, 5–6, 9
   leaderboard.ts0%0%0%0%1, 100, 11, 11, 11–12, 12, 12–14, 14, 14, 17–18, 18, 18, 18, 18, 2, 21–22, 25, 29, 3, 33–34, 37, 5, 75–76, 79, 8, 81, 9, 92–93, 95, 95
   learning.ts0%0%0%0%1, 107–108, 108, 108–110, 113, 120, 120, 125, 125, 127, 127, 127–129, 129–130, 136, 138–139, 144–146, 149, 151–152, 152–153, 157, 164–165, 173, 173–174, 178, 178–179, 181–182, 182–183, 189, 194–195, 199, 2, 24, 28, 28–29, 3, 31–32,

1 similar comment
@github-actions
Copy link

Backend Test Coverage Report

Coverage after merging bugfix/improve-golang-running into main will be
23.74%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src/config
   index.ts60.56%66.67%100%42.11%103, 115, 49, 53, 58–60, 60, 60, 63, 63, 63, 63–64, 68–70, 73, 73–74, 77, 83, 87, 90, 92–93, 93, 96
src/db
   index.ts0%0%0%0%1, 11, 11, 11, 14, 17, 19, 2, 22–23, 26–27, 30–31, 4–6, 8, 8, 8
src/middleware
   auth.ts57.14%20%100%63.64%34–35, 46, 46, 46–47, 52, 52–53, 61, 68–69
   errorHandler.ts0%0%0%0%10–11, 13, 13, 3
src/models
   Badge.ts100%100%100%100%
   Certificate.ts100%100%100%100%
   Challenge.ts81.25%0%100%85.71%101, 92, 94
   Concept.ts100%100%100%100%
   Submission.ts100%100%100%100%
   Tutorial.ts0%100%100%0%1, 36, 47, 54, 81–82, 84
   User.ts100%100%100%100%
   index.ts75%100%50%100%
src/routes
   aiAssistance.ts0%0%0%0%11–13, 16, 16, 16, 16, 16–17, 2, 21–22, 22–23, 27, 3, 36–37, 37, 4, 42, 45–46, 48, 48, 5, 54–55, 60, 66–67, 7, 71, 8
   auth.ts0%0%0%0%1, 10, 102–103, 11, 113, 116, 116, 116–117, 119, 12, 120, 120–121, 121, 123, 123, 131, 131, 131–132, 136–138, 14, 14, 140–141, 148–149, 15, 164, 169–170, 170–171, 175–176, 18, 183, 189, 19, 192–193, 195, 195–197, 2, 203, 207, 210, 210, 210, 210–211, 211, 211, 213, 213–214, 217–219, 223–224, 227–228, 238, 240, 242–243, 243–244, 244, 246, 246, 25, 254, 256, 256, 26, 261, 3–4, 41, 46–47, 47–48, 5, 52–53, 60, 66, 69, 7, 70, 72, 72–74, 80, 84, 87, 87, 87, 87–88, 88, 88, 90, 90–94, 98–99
   certificates.ts0%0%0%0%1, 100, 102, 102, 109, 113–116, 119, 124, 124–125, 128, 13, 130–131, 133, 133, 139, 14–15, 18, 2, 20, 22–23, 25, 25, 3, 32, 36–39, 4, 41, 41–42, 46, 51, 51–52, 59, 6, 61, 61–62, 68, 68, 68, 71–73, 77, 77–78, 87, 9, 91, 94, 99
   challenges.ts50%43.55%27.27%54.09%100, 102, 104, 104, 104, 104–105, 108, 108, 108, 108–109, 114, 114, 114, 114–115, 119–120, 120–121, 123, 123, 123–124, 127, 133, 136–137, 137–138, 147, 153–154, 157, 157–158, 162–164, 164–165, 174–176, 179, 179, 179, 179–180, 182–183, 185, 185, 185, 188, 192, 192–193, 198, 203, 203–204, 208–209, 212, 212–213, 223, 229–230, 232, 232, 265, 267, 270, 272, 272, 272, 272–273, 350–351, 357–359, 370–371, 377–378, 384–385, 388–389, 392–393, 395, 401–402, 402, 402–403, 408, 410, 410, 97–99
   dashboard.ts0%0%0%0%1, 101–103, 105, 105–107, 110–111, 114, 116, 118, 12, 125, 127–128, 133, 14–16, 16–17, 2, 22, 27, 3, 30–32, 35, 38, 38, 38–39, 4, 40, 44, 46, 46, 49, 49, 54, 54, 54–55, 6, 62, 62–64, 68, 70, 72, 84, 88–89, 9, 91–92, 98
   health.ts0%100%0%0%1, 3, 5–6, 9
   leaderboard.ts0%0%0%0%1, 100, 11, 11, 11–12, 12, 12–14, 14, 14, 17–18, 18, 18, 18, 18, 2, 21–22, 25, 29, 3, 33–34, 37, 5, 75–76, 79, 8, 81, 9, 92–93, 95, 95
   learning.ts0%0%0%0%1, 107–108, 108, 108–110, 113, 120, 120, 125, 125, 127, 127, 127–129, 129–130, 136, 138–139, 144–146, 149, 151–152, 152–153, 157, 164–165, 173, 173–174, 178, 178–179, 181–182, 182–183, 189, 194–195, 199, 2, 24, 28, 28–29, 3, 31–32,

@github-actions
Copy link

Backend Test Coverage Report

Coverage after merging bugfix/improve-golang-running into main will be
23.74%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src/config
   index.ts60.56%66.67%100%42.11%103, 115, 49, 53, 58–60, 60, 60, 63, 63, 63, 63–64, 68–70, 73, 73–74, 77, 83, 87, 90, 92–93, 93, 96
src/db
   index.ts0%0%0%0%1, 11, 11, 11, 14, 17, 19, 2, 22–23, 26–27, 30–31, 4–6, 8, 8, 8
src/middleware
   auth.ts57.14%20%100%63.64%34–35, 46, 46, 46–47, 52, 52–53, 61, 68–69
   errorHandler.ts0%0%0%0%10–11, 13, 13, 3
src/models
   Badge.ts100%100%100%100%
   Certificate.ts100%100%100%100%
   Challenge.ts81.25%0%100%85.71%101, 92, 94
   Concept.ts100%100%100%100%
   Submission.ts100%100%100%100%
   Tutorial.ts0%100%100%0%1, 36, 47, 54, 81–82, 84
   User.ts100%100%100%100%
   index.ts75%100%50%100%
src/routes
   aiAssistance.ts0%0%0%0%11–13, 16, 16, 16, 16, 16–17, 2, 21–22, 22–23, 27, 3, 36–37, 37, 4, 42, 45–46, 48, 48, 5, 54–55, 60, 66–67, 7, 71, 8
   auth.ts0%0%0%0%1, 10, 102–103, 11, 113, 116, 116, 116–117, 119, 12, 120, 120–121, 121, 123, 123, 131, 131, 131–132, 136–138, 14, 14, 140–141, 148–149, 15, 164, 169–170, 170–171, 175–176, 18, 183, 189, 19, 192–193, 195, 195–197, 2, 203, 207, 210, 210, 210, 210–211, 211, 211, 213, 213–214, 217–219, 223–224, 227–228, 238, 240, 242–243, 243–244, 244, 246, 246, 25, 254, 256, 256, 26, 261, 3–4, 41, 46–47, 47–48, 5, 52–53, 60, 66, 69, 7, 70, 72, 72–74, 80, 84, 87, 87, 87, 87–88, 88, 88, 90, 90–94, 98–99
   certificates.ts0%0%0%0%1, 100, 102, 102, 109, 113–116, 119, 124, 124–125, 128, 13, 130–131, 133, 133, 139, 14–15, 18, 2, 20, 22–23, 25, 25, 3, 32, 36–39, 4, 41, 41–42, 46, 51, 51–52, 59, 6, 61, 61–62, 68, 68, 68, 71–73, 77, 77–78, 87, 9, 91, 94, 99
   challenges.ts50%43.55%27.27%54.09%100, 102, 104, 104, 104, 104–105, 108, 108, 108, 108–109, 114, 114, 114, 114–115, 119–120, 120–121, 123, 123, 123–124, 127, 133, 136–137, 137–138, 147, 153–154, 157, 157–158, 162–164, 164–165, 174–176, 179, 179, 179, 179–180, 182–183, 185, 185, 185, 188, 192, 192–193, 198, 203, 203–204, 208–209, 212, 212–213, 223, 229–230, 232, 232, 265, 267, 270, 272, 272, 272, 272–273, 350–351, 357–359, 370–371, 377–378, 384–385, 388–389, 392–393, 395, 401–402, 402, 402–403, 408, 410, 410, 97–99
   dashboard.ts0%0%0%0%1, 101–103, 105, 105–107, 110–111, 114, 116, 118, 12, 125, 127–128, 133, 14–16, 16–17, 2, 22, 27, 3, 30–32, 35, 38, 38, 38–39, 4, 40, 44, 46, 46, 49, 49, 54, 54, 54–55, 6, 62, 62–64, 68, 70, 72, 84, 88–89, 9, 91–92, 98
   health.ts0%100%0%0%1, 3, 5–6, 9
   leaderboard.ts0%0%0%0%1, 100, 11, 11, 11–12, 12, 12–14, 14, 14, 17–18, 18, 18, 18, 18, 2, 21–22, 25, 29, 3, 33–34, 37, 5, 75–76, 79, 8, 81, 9, 92–93, 95, 95
   learning.ts0%0%0%0%1, 107–108, 108, 108–110, 113, 120, 120, 125, 125, 127, 127, 127–129, 129–130, 136, 138–139, 144–146, 149, 151–152, 152–153, 157, 164–165, 173, 173–174, 178, 178–179, 181–182, 182–183, 189, 194–195, 199, 2, 24, 28, 28–29, 3, 31–32,

1 similar comment
@github-actions
Copy link

Backend Test Coverage Report

Coverage after merging bugfix/improve-golang-running into main will be
23.74%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
src/config
   index.ts60.56%66.67%100%42.11%103, 115, 49, 53, 58–60, 60, 60, 63, 63, 63, 63–64, 68–70, 73, 73–74, 77, 83, 87, 90, 92–93, 93, 96
src/db
   index.ts0%0%0%0%1, 11, 11, 11, 14, 17, 19, 2, 22–23, 26–27, 30–31, 4–6, 8, 8, 8
src/middleware
   auth.ts57.14%20%100%63.64%34–35, 46, 46, 46–47, 52, 52–53, 61, 68–69
   errorHandler.ts0%0%0%0%10–11, 13, 13, 3
src/models
   Badge.ts100%100%100%100%
   Certificate.ts100%100%100%100%
   Challenge.ts81.25%0%100%85.71%101, 92, 94
   Concept.ts100%100%100%100%
   Submission.ts100%100%100%100%
   Tutorial.ts0%100%100%0%1, 36, 47, 54, 81–82, 84
   User.ts100%100%100%100%
   index.ts75%100%50%100%
src/routes
   aiAssistance.ts0%0%0%0%11–13, 16, 16, 16, 16, 16–17, 2, 21–22, 22–23, 27, 3, 36–37, 37, 4, 42, 45–46, 48, 48, 5, 54–55, 60, 66–67, 7, 71, 8
   auth.ts0%0%0%0%1, 10, 102–103, 11, 113, 116, 116, 116–117, 119, 12, 120, 120–121, 121, 123, 123, 131, 131, 131–132, 136–138, 14, 14, 140–141, 148–149, 15, 164, 169–170, 170–171, 175–176, 18, 183, 189, 19, 192–193, 195, 195–197, 2, 203, 207, 210, 210, 210, 210–211, 211, 211, 213, 213–214, 217–219, 223–224, 227–228, 238, 240, 242–243, 243–244, 244, 246, 246, 25, 254, 256, 256, 26, 261, 3–4, 41, 46–47, 47–48, 5, 52–53, 60, 66, 69, 7, 70, 72, 72–74, 80, 84, 87, 87, 87, 87–88, 88, 88, 90, 90–94, 98–99
   certificates.ts0%0%0%0%1, 100, 102, 102, 109, 113–116, 119, 124, 124–125, 128, 13, 130–131, 133, 133, 139, 14–15, 18, 2, 20, 22–23, 25, 25, 3, 32, 36–39, 4, 41, 41–42, 46, 51, 51–52, 59, 6, 61, 61–62, 68, 68, 68, 71–73, 77, 77–78, 87, 9, 91, 94, 99
   challenges.ts50%43.55%27.27%54.09%100, 102, 104, 104, 104, 104–105, 108, 108, 108, 108–109, 114, 114, 114, 114–115, 119–120, 120–121, 123, 123, 123–124, 127, 133, 136–137, 137–138, 147, 153–154, 157, 157–158, 162–164, 164–165, 174–176, 179, 179, 179, 179–180, 182–183, 185, 185, 185, 188, 192, 192–193, 198, 203, 203–204, 208–209, 212, 212–213, 223, 229–230, 232, 232, 265, 267, 270, 272, 272, 272, 272–273, 350–351, 357–359, 370–371, 377–378, 384–385, 388–389, 392–393, 395, 401–402, 402, 402–403, 408, 410, 410, 97–99
   dashboard.ts0%0%0%0%1, 101–103, 105, 105–107, 110–111, 114, 116, 118, 12, 125, 127–128, 133, 14–16, 16–17, 2, 22, 27, 3, 30–32, 35, 38, 38, 38–39, 4, 40, 44, 46, 46, 49, 49, 54, 54, 54–55, 6, 62, 62–64, 68, 70, 72, 84, 88–89, 9, 91–92, 98
   health.ts0%100%0%0%1, 3, 5–6, 9
   leaderboard.ts0%0%0%0%1, 100, 11, 11, 11–12, 12, 12–14, 14, 14, 17–18, 18, 18, 18, 18, 2, 21–22, 25, 29, 3, 33–34, 37, 5, 75–76, 79, 8, 81, 9, 92–93, 95, 95
   learning.ts0%0%0%0%1, 107–108, 108, 108–110, 113, 120, 120, 125, 125, 127, 127, 127–129, 129–130, 136, 138–139, 144–146, 149, 151–152, 152–153, 157, 164–165, 173, 173–174, 178, 178–179, 181–182, 182–183, 189, 194–195, 199, 2, 24, 28, 28–29, 3, 31–32,

@crisecheverria crisecheverria merged commit afcc87d into main Dec 20, 2025
6 checks passed
@crisecheverria crisecheverria deleted the bugfix/improve-golang-running branch December 20, 2025 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants