Skip to content

Commit

Permalink
fix: top level functions
Browse files Browse the repository at this point in the history
  • Loading branch information
vanlooverenkoen committed Nov 27, 2023
1 parent 4b68a40 commit 0a17501
Showing 1 changed file with 67 additions and 64 deletions.
131 changes: 67 additions & 64 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,75 +25,16 @@ if (githubToken == null || githubToken == "") {
return
}

try {
await configureGit()
await installDartDependencies();
await executeScriptPreRun()

await configurePubDevToken()

const pubspec = getPubspec()
const event = github.context.payload

const messages = event.commits.map(commit => commit.message + '\n' + commit.body)

const commitMessage = 'version bump to'
const isVersionBump = messages.map(message => message.toLowerCase().includes(commitMessage)).includes(true)
if (isVersionBump) {
core.info('No action necessary!')
return
}
core.info(`\`${event.commits.length}\` commit(s) for this version bump.`)

let versionType = 'patch'
if (messages.map(message => message.includes('BREAKING CHANGE') || message.includes('major')).includes(true)) {
versionType = 'major'
} else if (messages.map(
message => message.toLowerCase().startsWith('feat') || message.toLowerCase().includes('minor')).includes(true)) {
versionType = 'minor'
}
core.info(`${versionType} version bump!`)

const currentVersion = pubspec.version.toString()
const newVersion = incrementVersion(currentVersion, versionType)
core.info(`Bumping version from ${currentVersion} to ${newVersion}`)
updatePubspec(newVersion)

// Verification before publishing
await analyzeDartProject()

// Setting up Git
await runInWorkspace('git', ['config', 'user.name', `"${process.env.GITHUB_USER || 'Dart Conventional Release'}"`])
await runInWorkspace('git', ['config', 'user.email', `"${process.env.GITHUB_EMAIL || '[email protected]'}"`])
const remoteGitRepoUrl = `https://${githubToken}:[email protected]/${process.env.GITHUB_REPOSITORY}.git`
await runInWorkspace('git', ['remote', 'set-url', 'origin', remoteGitRepoUrl])


// Committing changes
await runInWorkspace('git', ['add', 'pubspec.yaml'])
await runInWorkspace('git', ['commit', '-m', `ci: ${commitMessage} ${newVersion}`])
// Tagging the commit
const tag = `v${newVersion}`
await runInWorkspace('git', ['tag', tag])

// Pushing changes
await runInWorkspace('git', ['push', 'origin'])
await runInWorkspace('git', ['push', 'origin', '--tags'])
await uploadDartProject()
} catch (error) {
core.setFailed(`Action failed with error: ${error}`)
}

// =====================================================================
// ============================= Functions =============================
// =====================================================================

function configureGit() {
return runInWorkspace('git', ['config', '--global', '--add', 'safe.directory', workspace])
async function configureGit() {
await runInWorkspace('git', ['config', '--global', '--add', 'safe.directory', workspace])
}

function installDartDependencies() {
return runInWorkspace('dart', ['pub', 'get'])
async function installDartDependencies() {
await runInWorkspace('dart', ['pub', 'get'])
}

// Run a script before the action (only if configured)
Expand Down Expand Up @@ -147,4 +88,66 @@ async function analyzeDartProject() {

async function uploadDartProject() {
await runInWorkspace('dart', ['pub', 'publish'])
}
}

// =====================================================================
// ================================ RUN ================================
// =====================================================================

try {
await configureGit()
await installDartDependencies();
await executeScriptPreRun()
await configurePubDevToken()

const pubspec = getPubspec()
const event = github.context.payload

const messages = event.commits.map(commit => commit.message + '\n' + commit.body)

const commitMessage = 'version bump to'
const isVersionBump = messages.map(message => message.toLowerCase().includes(commitMessage)).includes(true)
if (isVersionBump) {
core.info('No action necessary!')
return
}
core.info(`\`${event.commits.length}\` commit(s) for this version bump.`)

let versionType = 'patch'
if (messages.map(message => message.includes('BREAKING CHANGE') || message.includes('major')).includes(true)) {
versionType = 'major'
} else if (messages.map(
message => message.toLowerCase().startsWith('feat') || message.toLowerCase().includes('minor')).includes(true)) {
versionType = 'minor'
}
core.info(`${versionType} version bump!`)

const currentVersion = pubspec.version.toString()
const newVersion = incrementVersion(currentVersion, versionType)
core.info(`Bumping version from ${currentVersion} to ${newVersion}`)
updatePubspec(newVersion)

// Verification before publishing
await analyzeDartProject()

// Setting up Git
await runInWorkspace('git', ['config', 'user.name', `"${process.env.GITHUB_USER || 'Dart Conventional Release'}"`])
await runInWorkspace('git', ['config', 'user.email', `"${process.env.GITHUB_EMAIL || '[email protected]'}"`])
const remoteGitRepoUrl = `https://${githubToken}:[email protected]/${process.env.GITHUB_REPOSITORY}.git`
await runInWorkspace('git', ['remote', 'set-url', 'origin', remoteGitRepoUrl])


// Committing changes
await runInWorkspace('git', ['add', 'pubspec.yaml'])
await runInWorkspace('git', ['commit', '-m', `ci: ${commitMessage} ${newVersion}`])
// Tagging the commit
const tag = `v${newVersion}`
await runInWorkspace('git', ['tag', tag])

// Pushing changes
await runInWorkspace('git', ['push', 'origin'])
await runInWorkspace('git', ['push', 'origin', '--tags'])
await uploadDartProject()
} catch (error) {
core.setFailed(`Action failed with error: ${error}`)
}

0 comments on commit 0a17501

Please sign in to comment.