mirror of
https://github.com/codecov/codecov-action.git
synced 2025-12-08 08:06:27 +00:00
70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
const core = require('@actions/core');
|
|
const exec = require('@actions/exec');
|
|
|
|
const fs = require('fs');
|
|
const request = require('requestretry');
|
|
|
|
import buildExec from './buildExec';
|
|
|
|
let failCi;
|
|
try {
|
|
request({
|
|
json: false,
|
|
maxAttempts: 10,
|
|
timeout: 3000,
|
|
url: 'https://codecov.io/bash',
|
|
}, (error, response, body) => {
|
|
const {execArgs, options, filepath, failCi} = buildExec();
|
|
|
|
try {
|
|
if (error && failCi) {
|
|
throw error;
|
|
} else if (error) {
|
|
core.warning(`Codecov warning: ${error.message}`);
|
|
}
|
|
|
|
fs.writeFile(filepath, body, (err) => {
|
|
if (err && failCi) {
|
|
throw err;
|
|
} else if (err) {
|
|
core.warning(`Codecov warning: ${err.message}`);
|
|
}
|
|
|
|
exec.exec('bash', execArgs, options)
|
|
.catch((err) => {
|
|
if (failCi) {
|
|
core.setFailed(
|
|
`Codecov failed with the following error: ${err.message}`,
|
|
);
|
|
} else {
|
|
core.warning(`Codecov warning: ${err.message}`);
|
|
}
|
|
})
|
|
.then(() => {
|
|
unlinkFile();
|
|
});
|
|
|
|
const unlinkFile = () => {
|
|
fs.unlink(filepath, (err) => {
|
|
if (err && failCi) {
|
|
throw err;
|
|
} else if (err) {
|
|
core.warning(`Codecov warning: ${err.message}`);
|
|
}
|
|
});
|
|
};
|
|
});
|
|
} catch (error) {
|
|
core.setFailed(
|
|
`Codecov failed with the following error: ${error.message}`,
|
|
);
|
|
}
|
|
});
|
|
} catch (error) {
|
|
if (failCi) {
|
|
core.setFailed(`Codecov failed with the following error: ${error.message}`);
|
|
} else {
|
|
core.warning(`Codecov warning: ${error.message}`);
|
|
}
|
|
}
|