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';