From 2fd1dea26b81ac8be0f3f65f64d75ef42afd46f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 17:25:13 +0200 Subject: [PATCH 01/10] Remove GitHub API proxy --- src/stage4/src/executors/deno.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/stage4/src/executors/deno.rs b/src/stage4/src/executors/deno.rs index efc2c90..830efc9 100644 --- a/src/stage4/src/executors/deno.rs +++ b/src/stage4/src/executors/deno.rs @@ -18,7 +18,7 @@ impl Executor for Deno { fn get_download_urls<'a>(&self, _input: &'a AppInput) -> Pin> + 'a>> { Box::pin(async move { let mut downloads: Vec = vec!(); - let octocrab = octocrab::Octocrab::builder().base_uri("https://ggcmddenogithubreleases.azureedge.net/").unwrap().build().unwrap(); + let octocrab = octocrab::Octocrab::builder().build().unwrap(); let mut page: u32 = 1; loop { let releases = octocrab.repos("denoland", "deno") From 86a7efba0ba0d5cfde1b77c1fc1a619f04f433c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 17:36:16 +0200 Subject: [PATCH 02/10] Hello Caddy! --- src/stage4/src/executor.rs | 3 +- src/stage4/src/executors/caddy.rs | 73 +++++++++++++++++++++++++++++++ src/stage4/src/executors/mod.rs | 1 + 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 src/stage4/src/executors/caddy.rs diff --git a/src/stage4/src/executor.rs b/src/stage4/src/executor.rs index 2c01482..a1af9ec 100644 --- a/src/stage4/src/executor.rs +++ b/src/stage4/src/executor.rs @@ -13,7 +13,7 @@ use semver::{Version, VersionReq}; use serde::{Deserialize, Serialize}; use which::which_in; use crate::bloody_indiana_jones::BloodyIndianaJones; - +use crate::executors::caddy::Caddy; use crate::executors::custom_command::CustomCommand; use crate::executors::deno::Deno; use crate::executors::go::Go; @@ -151,6 +151,7 @@ impl dyn Executor { "run" => Some(Box::new(CustomCommand { executor_cmd })), "deno" => Some(Box::new(Deno { executor_cmd })), "go" => Some(Box::new(Go { executor_cmd })), + "caddy" => Some(Box::new(Caddy { executor_cmd })), _ => None, } } diff --git a/src/stage4/src/executors/caddy.rs b/src/stage4/src/executors/caddy.rs new file mode 100644 index 0000000..b1316a9 --- /dev/null +++ b/src/stage4/src/executors/caddy.rs @@ -0,0 +1,73 @@ +use std::collections::HashSet; +use std::future::Future; +use std::pin::Pin; + +use crate::executor::{AppInput, Download, Executor, ExecutorCmd, GgVersion}; +use crate::target::{Arch, Os, Variant}; +use crate::target::Os::Windows; + +pub struct Caddy { + pub executor_cmd: ExecutorCmd, +} + +impl Executor for Caddy { + fn get_executor_cmd(&self) -> &ExecutorCmd { + &self.executor_cmd + } + + fn get_download_urls<'a>(&self, _input: &'a AppInput) -> Pin> + 'a>> { + Box::pin(async move { + let mut downloads: Vec = vec!(); + let octocrab = octocrab::Octocrab::builder().build().unwrap(); + let mut page: u32 = 1; + loop { + let releases = octocrab.repos("caddyserver", "caddy") + .releases().list().page(page).per_page(100).send().await.unwrap(); + for release in releases.items { + for asset in release.assets { + let os = if asset.name.contains("windows") { + Some(Windows) + } else if asset.name.contains("linux") { + Some(Os::Linux) + } else if asset.name.contains("apple") { + Some(Os::Mac) + } else { + None + }; + let arch = if asset.name.contains("amd64") { + Some(Arch::X86_64) + } else { + None + }; + if os.is_some() && arch.is_some() { + downloads.push(Download { + download_url: asset.browser_download_url.to_string(), + version: GgVersion::new(release.tag_name.as_str()), + os, + arch, + tags: HashSet::new(), + variant: Some(Variant::Any), + }); + } + } + } + if releases.next == None { + break; + } + page += 1; + } + downloads + }) + } + + fn get_bins(&self, input: &AppInput) -> Vec { + vec!(match &input.target.os { + Windows => "caddy.exe", + _ => "caddy" + }.to_string()) + } + + fn get_name(&self) -> &str { + "caddy" + } +} diff --git a/src/stage4/src/executors/mod.rs b/src/stage4/src/executors/mod.rs index 2e034c3..32dc094 100644 --- a/src/stage4/src/executors/mod.rs +++ b/src/stage4/src/executors/mod.rs @@ -8,3 +8,4 @@ pub mod node; pub mod deno; pub mod gradle_properties; pub mod go; +pub mod caddy; From d785173ff7629d2f5becf8616ebae1d4b2afa430 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 17:42:42 +0200 Subject: [PATCH 03/10] Test caddy --- .github/workflows/gg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index cad0700..59ad4bb 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -253,7 +253,7 @@ jobs: strategy: matrix: os: [ ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macOS-11, macOS-12 ] - cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V" ] + cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V", "caddy -v" ] runs-on: ${{ matrix.os }} steps: @@ -298,7 +298,7 @@ jobs: strategy: matrix: os: [ windows-2019, windows-2022 ] - cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V" ] + cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V", "caddy -v" ] runs-on: ${{ matrix.os }} steps: From 736f57691fa4399574eda185027e73a262d07c84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 22:38:16 +0200 Subject: [PATCH 04/10] Fix change in Azul Java JSON format --- src/stage4/src/executors/java.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/stage4/src/executors/java.rs b/src/stage4/src/executors/java.rs index d0e2bc8..88f6673 100644 --- a/src/stage4/src/executors/java.rs +++ b/src/stage4/src/executors/java.rs @@ -26,7 +26,6 @@ struct Root2 { pub features: Vec, #[serde(rename = "hw_bitness")] pub hw_bitness: String, - pub id: i64, #[serde(rename = "java_version")] pub java_version: Vec, pub javafx: bool, From da9052c8554ca27167d2551318d679db1de5fed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 22:54:18 +0200 Subject: [PATCH 05/10] Drop ubuntu 14 Fun to test, but... --- .github/workflows/gg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index 59ad4bb..ad1c0fb 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -341,7 +341,7 @@ jobs: needs: stage1 strategy: matrix: - container: [ ubuntu, debian, alpine, archlinux, 'ubuntu:14.04', 'ubuntu:18.04' ] + container: [ ubuntu, debian, alpine, archlinux, 'ubuntu:18.04' ] cmd: [ "node@14 -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version" ] runs-on: ubuntu-latest From fe4f40433fd8d3104260698061f9619128f726f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 23:12:56 +0200 Subject: [PATCH 06/10] Eh --- .github/workflows/gg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index ad1c0fb..c29619b 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -341,7 +341,7 @@ jobs: needs: stage1 strategy: matrix: - container: [ ubuntu, debian, alpine, archlinux, 'ubuntu:18.04' ] + container: [ ubuntu, debian, alpine, archlinux ] cmd: [ "node@14 -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version" ] runs-on: ubuntu-latest From dda5e66c8d5c074a82f35a89e25f618e360e178f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 23:40:52 +0200 Subject: [PATCH 07/10] Build. Please --- .github/workflows/gg.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index c29619b..152fe47 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -142,6 +142,9 @@ jobs: target: x86_64-apple-darwin stage4: x86_64-apple-darwin # TODO: Version too new + - os: macos-12 + target: x86_64-apple-darwin + stage4: x86_64-apple-darwin - os: ubuntu-20.04 target: x86_64-unknown-linux-gnu stage4: x86_64-unknown-linux-musl From 27941dceefa04b83e95be0d22fa4691129131adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sat, 13 Jul 2024 23:47:34 +0200 Subject: [PATCH 08/10] Build. Please --- .github/workflows/gg.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index 152fe47..d925aab 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -256,7 +256,7 @@ jobs: strategy: matrix: os: [ ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macOS-11, macOS-12 ] - cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V", "caddy -v" ] + cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V" ] runs-on: ${{ matrix.os }} steps: @@ -301,7 +301,7 @@ jobs: strategy: matrix: os: [ windows-2019, windows-2022 ] - cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V", "caddy -v" ] + cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V" ] runs-on: ${{ matrix.os }} steps: From 94e6af38676efc4a2ca63dbf0f3c62f5d0a91d5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sun, 14 Jul 2024 15:12:00 +0200 Subject: [PATCH 09/10] Re-implement hack for GH API rate limiting --- src/stage4/src/executors/caddy.rs | 2 +- src/stage4/src/executors/deno.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/stage4/src/executors/caddy.rs b/src/stage4/src/executors/caddy.rs index b1316a9..7f5e66d 100644 --- a/src/stage4/src/executors/caddy.rs +++ b/src/stage4/src/executors/caddy.rs @@ -18,7 +18,7 @@ impl Executor for Caddy { fn get_download_urls<'a>(&self, _input: &'a AppInput) -> Pin> + 'a>> { Box::pin(async move { let mut downloads: Vec = vec!(); - let octocrab = octocrab::Octocrab::builder().build().unwrap(); + let octocrab = octocrab::Octocrab::builder().base_uri("https://ghapi.ggcmd.io/").unwrap().build().unwrap(); let mut page: u32 = 1; loop { let releases = octocrab.repos("caddyserver", "caddy") diff --git a/src/stage4/src/executors/deno.rs b/src/stage4/src/executors/deno.rs index 830efc9..594fbf7 100644 --- a/src/stage4/src/executors/deno.rs +++ b/src/stage4/src/executors/deno.rs @@ -18,7 +18,7 @@ impl Executor for Deno { fn get_download_urls<'a>(&self, _input: &'a AppInput) -> Pin> + 'a>> { Box::pin(async move { let mut downloads: Vec = vec!(); - let octocrab = octocrab::Octocrab::builder().build().unwrap(); + let octocrab = octocrab::Octocrab::builder().base_uri("https://ghapi.ggcmd.io/").unwrap().build().unwrap(); let mut page: u32 = 1; loop { let releases = octocrab.repos("denoland", "deno") From ca42b30c42270807a022af2305c1e80e8f815282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eirik=20Brandtz=C3=A6g?= Date: Sun, 14 Jul 2024 16:28:06 +0200 Subject: [PATCH 10/10] Remove tests for macOS-11 Doesn't seem to run at all --- .github/workflows/gg.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gg.yml b/.github/workflows/gg.yml index d925aab..7ff820b 100644 --- a/.github/workflows/gg.yml +++ b/.github/workflows/gg.yml @@ -255,7 +255,7 @@ jobs: needs: stage1 strategy: matrix: - os: [ ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macOS-11, macOS-12 ] + os: [ ubuntu-20.04, ubuntu-22.04, windows-2019, windows-2022, macOS-12 ] cmd: [ "node -v", "java -version", "gradle -version", "maven -v", "openapi version", "rat -V", "run:java@14 java -version", "deno -V" ] runs-on: ${{ matrix.os }}