@@ -88,6 +88,12 @@ function getProtoc(version, includePreReleases, repoToken) {
88
88
// expose outputs
89
89
core.setOutput("path", toolPath);
90
90
core.setOutput("version", targetVersion);
91
+ if (process.platform === "win32") {
92
+ core.exportVariable("PROTOC", toolPath + "\\bin\\protoc.exe");
93
+ }
94
+ else {
95
+ core.exportVariable("PROTOC", toolPath + "/bin/protoc");
96
+ }
91
97
// add the bin folder to the PATH
92
98
core.addPath(path.join(toolPath, "bin"));
93
99
});
@@ -174,7 +180,7 @@ function getFileName(version, osPlatf, osArc) {
174
180
}
175
181
exports.getFileName = getFileName;
176
182
// Retrieve a list of versions scraping tags from the Github API
177
- function fetchVersions(includePreReleases, repoToken) {
183
+ function fetchVersions(version, includePreReleases, repoToken) {
178
184
return __awaiter(this, void 0, void 0, function* () {
179
185
let rest;
180
186
if (repoToken != "") {
@@ -186,17 +192,28 @@ function fetchVersions(includePreReleases, repoToken) {
186
192
rest = new restm.RestClient("setup-protoc");
187
193
}
188
194
let tags = [];
189
- for (let pageNum = 1, morePages = true; morePages; pageNum++) {
190
- const p = yield rest.get("https://api.github.com/repos/protocolbuffers/protobuf/releases?page=" +
191
- pageNum);
192
- const nextPage = p.result || [];
193
- if (nextPage.length > 0) {
194
- tags = tags.concat(nextPage);
195
- }
196
- else {
197
- morePages = false;
195
+
196
+ if (version == "24" || version == "24.4" || version == "25.2" || version == "25" || version == "26.0")
197
+ {
198
+ //use cached response
199
+ console.log("Using version " + version + " (cached info without using github api)");
200
+ return ["24.4","25.2","26.0"];
201
+ }
202
+ else
203
+ {
204
+ for (let pageNum = 1, morePages = true; morePages; pageNum++) {
205
+ const p = yield rest.get("https://api.github.com/repos/protocolbuffers/protobuf/releases?page=" +
206
+ pageNum);
207
+ const nextPage = p.result || [];
208
+ if (nextPage.length > 0) {
209
+ tags = tags.concat(nextPage);
210
+ }
211
+ else {
212
+ morePages = false;
213
+ }
198
214
}
199
215
}
216
+
200
217
return tags
201
218
.filter((tag) => tag.tag_name.match(/v\d+\.[\w.]+/g))
202
219
.filter((tag) => includePrerelease(tag.prerelease, includePreReleases))
@@ -214,7 +231,7 @@ function computeVersion(version, includePreReleases, repoToken) {
214
231
if (version.endsWith(".x")) {
215
232
version = version.slice(0, version.length - 2);
216
233
}
217
- const allVersions = yield fetchVersions(includePreReleases, repoToken);
234
+ const allVersions = yield fetchVersions(version, includePreReleases, repoToken);
218
235
const validVersions = allVersions.filter((v) => v.match(semverRegex));
219
236
const possibleVersions = validVersions.filter((v) => v.startsWith(version));
220
237
const versionMap = new Map();
0 commit comments