diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
index 45b8626f..805d4117 100644
--- a/.github/workflows/workflow.yml
+++ b/.github/workflows/workflow.yml
@@ -9,12 +9,12 @@ jobs:
operating-system: [ubuntu-latest, windows-latest]
steps:
- name: Checkout
- uses: actions/checkout@master
+ uses: actions/checkout@v2
- - name: Set Node.js 10.x
- uses: actions/setup-node@master
+ - name: Setup Node.js 12.x
+ uses: actions/setup-node@v1
with:
- node-version: 10.x
+ node-version: 12.x
- name: npm install
run: npm install
@@ -40,12 +40,12 @@ jobs:
run: |
echo "127.0.0.0 registry.npm.js nodejs.org github.com api.github.com download.java.net static.azul.com" | sudo tee -a /etc/hosts
- name: Checkout
- uses: actions/checkout@master
+ uses: actions/checkout@v2
- - name: Set Node.js 10.x
- uses: actions/setup-node@master
+ - name: Setup Node.js 12.x
+ uses: actions/setup-node@v1
with:
- node-version: 10.x
+ node-version: 12.x
- name: npm install
run: npm install
diff --git a/dist/index.js b/dist/index.js
index 12c71d3d..96632653 100644
Binary files a/dist/index.js and b/dist/index.js differ
diff --git a/src/installer.ts b/src/installer.ts
index 9cc16a5f..cce8fa3d 100644
--- a/src/installer.ts
+++ b/src/installer.ts
@@ -39,15 +39,28 @@ export async function getJava(
} else {
let compressedFileExtension = '';
if (!jdkFile) {
- core.debug('Downloading Jdk from Azul');
- let http: httpm.HttpClient = new httpm.HttpClient('setup-java');
- let contents = await (
- await http.get('https://static.azul.com/zulu/bin/')
- ).readBody();
- let refs = contents.match(//gi) || [];
+ core.debug('Downloading JDK from Azul');
+ const http = new httpm.HttpClient('setup-java', undefined, {
+ allowRetries: true,
+ maxRetries: 3
+ });
+ const url = 'https://static.azul.com/zulu/bin/';
+ const response = await http.get(url);
+ const statusCode = response.message.statusCode || 0;
+ if (statusCode < 200 || statusCode > 299) {
+ let body = '';
+ try {
+ body = await response.readBody();
+ } catch (err) {
+ core.debug(`Unable to read body: ${err.message}`);
+ }
+ const message = `Unexpected HTTP status code '${response.message.statusCode}' when retrieving versions from '${url}'. ${body}`.trim();
+ throw new Error(message);
+ }
+ const contents = await response.readBody();
+ const refs = contents.match(//gi) || [];
const downloadInfo = getDownloadInfo(refs, version, javaPackage);
-
jdkFile = await tc.downloadTool(downloadInfo.url);
version = downloadInfo.version;
compressedFileExtension = IS_WINDOWS ? '.zip' : '.tar.gz';