Download ossutil from CDN endpoint (#30)
* use cdn to download * set default version to 1.7.14 * schedule daily test * bump up version 1.1.1 * use 'latest' in CI test
This commit is contained in:
3
.github/workflows/test.yml
vendored
3
.github/workflows/test.yml
vendored
@@ -4,6 +4,8 @@ on: # rebuild any PRs and main branch changes
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
build: # make sure build/ci work properly
|
||||
@@ -36,6 +38,7 @@ jobs:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: ./
|
||||
with:
|
||||
ossutil-version: 'latest'
|
||||
endpoint: ${{ secrets.OSS_ENDPOINT }}
|
||||
access-key-id: ${{ secrets.OSS_ACCESS_KEY_ID }}
|
||||
access-key-secret: ${{ secrets.OSS_ACCESS_KEY_SECRET }}
|
||||
|
||||
@@ -16,7 +16,7 @@ steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: yizhoumo/setup-ossutil@v1
|
||||
with:
|
||||
ossutil-version: '1.7.0' # Optional, default to 'latest'
|
||||
ossutil-version: '1.7.14' # Optional, default to '1.7.14'. Use 'latest' to get the latest version.
|
||||
endpoint: ${{ secrets.OSS_ENDPOINT }}
|
||||
access-key-id: ${{ secrets.OSS_ACCESS_KEY_ID }}
|
||||
access-key-secret: ${{ secrets.OSS_ACCESS_KEY_SECRET }}
|
||||
|
||||
@@ -21,15 +21,11 @@ describe('installer tests', () => {
|
||||
await io.rmRF(TEMP_DIR)
|
||||
})
|
||||
|
||||
const versions = ['1.7.0', 'latest']
|
||||
const versions = ['1.7.14', 'latest']
|
||||
|
||||
it.each(versions)('install ossutil %s', async version => {
|
||||
await installer.getOssutil(version)
|
||||
|
||||
expect(await io.which('ossutil', true)).toBeTruthy()
|
||||
})
|
||||
|
||||
it('throw if wrong version', async () => {
|
||||
await expect(installer.getOssutil('1000.0.0')).rejects.toThrowError()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -5,7 +5,7 @@ inputs:
|
||||
ossutil-version:
|
||||
description: 'The OSSUTIL version to download and use'
|
||||
required: false
|
||||
default: 'latest'
|
||||
default: '1.7.14'
|
||||
endpoint:
|
||||
description: 'The endpoint of your bucket'
|
||||
required: true
|
||||
|
||||
12
dist/index.js
generated
vendored
12
dist/index.js
generated
vendored
@@ -45,7 +45,8 @@ const tc = __importStar(__nccwpck_require__(7784));
|
||||
const fs = __importStar(__nccwpck_require__(5747));
|
||||
const http_client_1 = __nccwpck_require__(6255);
|
||||
const ToolName = 'ossutil';
|
||||
const UpdateEndpoint = 'https://ossutil-version-update.oss-cn-hangzhou.aliyuncs.com';
|
||||
const UpdateUrl = 'https://ossutil-version-update.oss-cn-hangzhou.aliyuncs.com/ossutilversion';
|
||||
const DownloadEndpoint = 'https://gosspublic.alicdn.com/ossutil';
|
||||
/**
|
||||
* Get ossutil ready for use
|
||||
* @param version the version of ossutil
|
||||
@@ -98,7 +99,7 @@ function downloadOssutil(version) {
|
||||
* @returns the URL
|
||||
*/
|
||||
function getDownloadUrl(version) {
|
||||
let downloadUrl = `${UpdateEndpoint}/${version}/`;
|
||||
let downloadUrl = `${DownloadEndpoint}/${version}/`;
|
||||
switch (process.platform) {
|
||||
case 'linux':
|
||||
downloadUrl += 'ossutil64';
|
||||
@@ -120,8 +121,11 @@ function getDownloadUrl(version) {
|
||||
*/
|
||||
function getLatestVersion() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
const http = new http_client_1.HttpClient();
|
||||
const response = yield http.get(`${UpdateEndpoint}/ossutilversion`);
|
||||
const http = new http_client_1.HttpClient('setup-ossutil', [], {
|
||||
allowRetries: true,
|
||||
maxRetries: 5
|
||||
});
|
||||
const response = yield http.get(UpdateUrl);
|
||||
const content = yield response.readBody();
|
||||
return content.trim();
|
||||
});
|
||||
|
||||
2
dist/index.js.map
generated
vendored
2
dist/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "setup-ossutil",
|
||||
"version": "1.1.0",
|
||||
"version": "1.1.1",
|
||||
"private": true,
|
||||
"description": "setup ossutil action",
|
||||
"main": "lib/setup-ossutil.js",
|
||||
|
||||
@@ -4,8 +4,9 @@ import * as fs from 'fs'
|
||||
import {HttpClient} from '@actions/http-client'
|
||||
|
||||
const ToolName = 'ossutil'
|
||||
const UpdateEndpoint =
|
||||
'https://ossutil-version-update.oss-cn-hangzhou.aliyuncs.com'
|
||||
const UpdateUrl =
|
||||
'https://ossutil-version-update.oss-cn-hangzhou.aliyuncs.com/ossutilversion'
|
||||
const DownloadEndpoint = 'https://gosspublic.alicdn.com/ossutil'
|
||||
|
||||
/**
|
||||
* Get ossutil ready for use
|
||||
@@ -59,7 +60,7 @@ async function downloadOssutil(version: string): Promise<string> {
|
||||
* @returns the URL
|
||||
*/
|
||||
function getDownloadUrl(version: string): string {
|
||||
let downloadUrl = `${UpdateEndpoint}/${version}/`
|
||||
let downloadUrl = `${DownloadEndpoint}/${version}/`
|
||||
switch (process.platform) {
|
||||
case 'linux':
|
||||
downloadUrl += 'ossutil64'
|
||||
@@ -82,8 +83,11 @@ function getDownloadUrl(version: string): string {
|
||||
* @returns the latest version
|
||||
*/
|
||||
async function getLatestVersion(): Promise<string> {
|
||||
const http = new HttpClient()
|
||||
const response = await http.get(`${UpdateEndpoint}/ossutilversion`)
|
||||
const http = new HttpClient('setup-ossutil', [], {
|
||||
allowRetries: true,
|
||||
maxRetries: 5
|
||||
})
|
||||
const response = await http.get(UpdateUrl)
|
||||
const content = await response.readBody()
|
||||
return content.trim()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user