Compare commits

...

8 Commits

Author SHA1 Message Date
Taiki Endo
0fc560009a Release 2.33.27 2024-05-21 10:16:19 +09:00
Taiki Endo
8eb922d4a7 Update wasmtime@latest to 21.0.0 2024-05-21 06:10:49 +09:00
Taiki Endo
689459d9ff Release 2.33.26 2024-05-19 22:09:09 +09:00
Taiki Endo
c9ca4b7c7b Update cargo-careful@latest to 0.4.2 2024-05-19 22:01:05 +09:00
John Vandenberg
68c5e86b83 codegen: Avoid using GITHUB_TOKEN with crates.io (#484) 2024-05-19 11:54:42 +09:00
John Vandenberg
d722dd2b73 codegen: Allow skipping existing versions (#485) 2024-05-19 11:51:47 +09:00
Taiki Endo
3c93f2e2e2 Release 2.33.25 2024-05-18 19:02:10 +09:00
Taiki Endo
4f17488f44 Update cargo-binstall@latest to 1.6.7 2024-05-18 18:11:25 +09:00
5 changed files with 98 additions and 20 deletions

View File

@@ -10,6 +10,18 @@ Note: In this file, do not use the hard wrap in the middle of a sentence for com
## [Unreleased] ## [Unreleased]
## [2.33.27] - 2024-05-21
- Update `wasmtime@latest` to 21.0.0.
## [2.33.26] - 2024-05-19
- Update `cargo-careful@latest` to 0.4.2.
## [2.33.25] - 2024-05-18
- Update `cargo-binstall@latest` to 1.6.7.
## [2.33.24] - 2024-05-17 ## [2.33.24] - 2024-05-17
- Update `mdbook@latest` to 0.4.40. - Update `mdbook@latest` to 0.4.40.
@@ -2177,7 +2189,10 @@ Note: This release is considered a breaking change because installing on version
Initial release Initial release
[Unreleased]: https://github.com/taiki-e/install-action/compare/v2.33.24...HEAD [Unreleased]: https://github.com/taiki-e/install-action/compare/v2.33.27...HEAD
[2.33.27]: https://github.com/taiki-e/install-action/compare/v2.33.26...v2.33.27
[2.33.26]: https://github.com/taiki-e/install-action/compare/v2.33.25...v2.33.26
[2.33.25]: https://github.com/taiki-e/install-action/compare/v2.33.24...v2.33.25
[2.33.24]: https://github.com/taiki-e/install-action/compare/v2.33.23...v2.33.24 [2.33.24]: https://github.com/taiki-e/install-action/compare/v2.33.23...v2.33.24
[2.33.23]: https://github.com/taiki-e/install-action/compare/v2.33.22...v2.33.23 [2.33.23]: https://github.com/taiki-e/install-action/compare/v2.33.22...v2.33.23
[2.33.22]: https://github.com/taiki-e/install-action/compare/v2.33.21...v2.33.22 [2.33.22]: https://github.com/taiki-e/install-action/compare/v2.33.21...v2.33.22

View File

@@ -21,26 +21,26 @@
} }
}, },
"latest": { "latest": {
"version": "1.6.6" "version": "1.6.7"
}, },
"1.6.6": { "1.6.7": {
"x86_64_linux_musl": { "x86_64_linux_musl": {
"checksum": "49f891fddf795f33b02c0ea58d7af7a7dc087fbb47a504ca1bf69f403f711c46" "checksum": "6ae4e3a180c44986346478dfbb37bf02861161dcc7e8b4dc21e790ae5c1ad0ce"
}, },
"x86_64_macos": { "x86_64_macos": {
"checksum": "7c7e59c116fc452cedfd7142224729ec8e6ec4ff1962fda3a3e87e1c7c51fbb9" "checksum": "829749d20ff9cf2d90235d7c45c8663d7a031e107e6a0f062c0a28d70cab1310"
}, },
"x86_64_windows": { "x86_64_windows": {
"checksum": "5556b4d1c829b854dc71ca3b258950227957d7f9c258f808d8eb15849810a9b4" "checksum": "95de3336d3b10af2dbab7a8dfa1719ab4666054879a8941430b681adf15b50be"
}, },
"aarch64_linux_musl": { "aarch64_linux_musl": {
"checksum": "141b546d52353657706e63ee596f2637c4b34b1705aaa9ec716db74f813d436f" "checksum": "b3063411df26d35638d52932d8d4d0ac1619801d5ee988c00d98aaa3d93bea7d"
}, },
"aarch64_macos": { "aarch64_macos": {
"checksum": "6670805e15799cc6caa5ac35f0c0bc599ee6d51cdf2f21346deeaaf821e763a8" "checksum": "8a0b996f9e9c9097796374ca60ef68aaf084c264833a20b546fd6c67566006a7"
}, },
"aarch64_windows": { "aarch64_windows": {
"checksum": "bf7321de10806e051868819c3fe61127f5bac1619181c955da06f5e06c2612e8" "checksum": "af0a452a3b6fa2fb8d95638061ae07ae3470ba9f131a63699ab268a26aed77c0"
} }
} }
} }

View File

@@ -12,10 +12,21 @@
} }
}, },
"latest": { "latest": {
"version": "0.4.1" "version": "0.4.2"
}, },
"0.4": { "0.4": {
"version": "0.4.1" "version": "0.4.2"
},
"0.4.2": {
"x86_64_linux_musl": {
"checksum": "ee14c5796acab604714e358de11bf5204055410ae8fd4891df7f5d62461402c3"
},
"x86_64_macos": {
"checksum": "480efaf0a577161332b27ea13c8703ead1b6355b5c6541f5bd61d440440b4bde"
},
"x86_64_windows": {
"checksum": "ac374b7799a37e3ef21c6bfe409583c3acbc57242fbb32e8534269b5e97b8ee9"
}
}, },
"0.4.1": { "0.4.1": {
"x86_64_linux_musl": { "x86_64_linux_musl": {

View File

@@ -23,7 +23,30 @@
} }
}, },
"latest": { "latest": {
"version": "20.0.2" "version": "21.0.0"
},
"21": {
"version": "21.0.0"
},
"21.0": {
"version": "21.0.0"
},
"21.0.0": {
"x86_64_linux_gnu": {
"checksum": "605efdd4d073a7574b6d42ef0c9037c6c4e3933ed80615eab84f2d57cfeb3b28"
},
"x86_64_macos": {
"checksum": "7beb9f1b6789af74beef8354b675d5cab6477be708bf45aa86f411c4afe55dfd"
},
"x86_64_windows": {
"checksum": "e57345a2bd644e7f4d0a013617d64a3e16966b9483fee72bad2ab1eebabce59b"
},
"aarch64_linux_gnu": {
"checksum": "0fa42c4555617cb4a602216ec45b8dc43686733653ec07f9488ab5e2e3bf5ec8"
},
"aarch64_macos": {
"checksum": "b4a09d69c2cb4655e68895156a1de713b27a6e64796d9073108d20f55b8d5d5c"
}
}, },
"20": { "20": {
"version": "20.0.2" "version": "20.0.2"

View File

@@ -31,6 +31,7 @@ fn main() -> Result<()> {
std::process::exit(1); std::process::exit(1);
} }
let package = &args[0]; let package = &args[0];
let skip_existing_manifest_versions = std::env::var("SKIP_EXISTING_MANIFEST_VERSIONS").is_ok();
let workspace_root = &workspace_root(); let workspace_root = &workspace_root();
let manifest_path = &workspace_root.join("manifests").join(format!("{package}.json")); let manifest_path = &workspace_root.join("manifests").join(format!("{package}.json"));
@@ -53,7 +54,7 @@ fn main() -> Result<()> {
// is greater than 100, multiple fetches are needed. // is greater than 100, multiple fetches are needed.
for page in 1.. { for page in 1.. {
let per_page = 100; let per_page = 100;
let mut r: github::Releases = download(&format!( let mut r: github::Releases = download_github(&format!(
"https://api.github.com/repos/{repo}/releases?per_page={per_page}&page={page}" "https://api.github.com/repos/{repo}/releases?per_page={per_page}&page={page}"
))? ))?
.into_json()?; .into_json()?;
@@ -179,6 +180,13 @@ fn main() -> Result<()> {
continue; continue;
} }
let reverse_semver = Reverse(semver_version.clone().into());
if skip_existing_manifest_versions && manifests.map.contains_key(&reverse_semver) {
eprintln!("Skipping {semver_version} already in manifest");
continue;
};
let mut download_info = BTreeMap::new(); let mut download_info = BTreeMap::new();
let mut pubkey = None; let mut pubkey = None;
for (&platform, base_download_info) in &base_info.platform { for (&platform, base_download_info) in &base_info.platform {
@@ -224,7 +232,7 @@ fn main() -> Result<()> {
eprintln!("already downloaded"); eprintln!("already downloaded");
fs::File::open(download_cache)?.read_to_end(&mut buf)?; fs::File::open(download_cache)?.read_to_end(&mut buf)?;
} else { } else {
download(&url)?.into_reader().read_to_end(&mut buf)?; download_github(&url)?.into_reader().read_to_end(&mut buf)?;
eprintln!("download complete"); eprintln!("download complete");
fs::write(download_cache, &buf)?; fs::write(download_cache, &buf)?;
} }
@@ -246,7 +254,7 @@ fn main() -> Result<()> {
eprintln!("already downloaded"); eprintln!("already downloaded");
minisign_verify::Signature::from_file(sig_download_cache)? minisign_verify::Signature::from_file(sig_download_cache)?
} else { } else {
let buf = download(&url)?.into_string()?; let buf = download_github(&url)?.into_string()?;
eprintln!("download complete"); eprintln!("download complete");
fs::write(sig_download_cache, &buf)?; fs::write(sig_download_cache, &buf)?;
minisign_verify::Signature::decode(&buf)? minisign_verify::Signature::decode(&buf)?
@@ -357,10 +365,7 @@ fn main() -> Result<()> {
if semver_version.pre.is_empty() { if semver_version.pre.is_empty() {
semver_versions.insert(semver_version.clone()); semver_versions.insert(semver_version.clone());
} }
manifests.map.insert( manifests.map.insert(reverse_semver, ManifestRef::Real(Manifest { download_info }));
Reverse(semver_version.clone().into()),
ManifestRef::Real(Manifest { download_info }),
);
} }
if has_build_metadata { if has_build_metadata {
eprintln!( eprintln!(
@@ -527,7 +532,9 @@ fn replace_vars(
Ok(s) Ok(s)
} }
fn download(url: &str) -> Result<ureq::Response> { /// Download using GITHUB_TOKEN.
#[allow(clippy::missing_panics_doc)]
fn download_github(url: &str) -> Result<ureq::Response> {
let mut token = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty()); let mut token = env::var("GITHUB_TOKEN").ok().filter(|v| !v.is_empty());
let mut retry = 0; let mut retry = 0;
let max_retry = 6; let max_retry = 6;
@@ -554,6 +561,28 @@ fn download(url: &str) -> Result<ureq::Response> {
Err(last_error.unwrap().into()) Err(last_error.unwrap().into())
} }
/// Download without using GITHUB_TOKEN.
#[allow(clippy::missing_panics_doc)]
pub fn download(url: &str) -> Result<ureq::Response> {
let mut retry = 0;
let max_retry = 6;
let mut last_error;
loop {
let req = ureq::get(url);
match req.call() {
Ok(res) => return Ok(res),
Err(e) => last_error = Some(e),
}
retry += 1;
if retry > max_retry {
break;
}
eprintln!("download of {url} failed; retrying after {}s ({retry}/{max_retry})", retry * 2);
std::thread::sleep(Duration::from_secs(retry * 2));
}
Err(last_error.unwrap().into())
}
#[derive(Debug, Clone, PartialEq, Eq)] #[derive(Debug, Clone, PartialEq, Eq)]
struct Version { struct Version {
major: Option<u64>, major: Option<u64>,