-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* release test 1 * 0.1.1 * Update CHANGELOG.md [skip ci] * Update CHANGELOG.md [skip ci] * Update CHANGELOG.md [skip ci] * Update CHANGELOG.md [skip ci] * Update contributors [skip ci] * add files * Update CHANGELOG.md [skip ci] * Update contributors [skip ci] * Update CHANGELOG.md [skip ci] * save work * Update CHANGELOG.md [skip ci] * modify changelog
- Loading branch information
1 parent
17a8895
commit 5103bf1
Showing
14 changed files
with
773 additions
and
227 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
{ | ||
"projectName": "does-it-throw", | ||
"projectOwner": "michaelangeloio", | ||
"files": [ | ||
"README.md" | ||
], | ||
"imageSize": 100, | ||
"contributors": [ | ||
{ | ||
"login": "michaelangeloio", | ||
"name": "Michael Angelo Rivera", | ||
"avatar_url": "https://avatars.githubusercontent.com/u/55844504?v=4", | ||
"profile": "https://github.com/michaelangeloio", | ||
"contributions": [ | ||
"code", | ||
"infra", | ||
"doc" | ||
] | ||
} | ||
], | ||
"repoType": "github", | ||
"contributorsPerLine": 7, | ||
"repoHost": "https://github.com", | ||
"commitConvention": "angular", | ||
"skipCi": true, | ||
"commitType": "docs" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
import { Auto, execPromise, IPlugin, SEMVER } from '@auto-it/core' | ||
import { access, readFile, writeFile } from 'fs/promises' | ||
import isCi from 'is-ci' | ||
import { join } from 'path' | ||
import { inc, ReleaseType } from 'semver' | ||
import { parse as parseToml } from 'toml' | ||
import userHome from 'user-home' | ||
|
||
/** Get the parsed cargo.toml for the crate */ | ||
export const getCargoConfig = async () => { | ||
const content = (await readFile(join(process.cwd(), 'Cargo.toml'))).toString() | ||
return { toml: parseToml(content), content } | ||
} | ||
|
||
/** Get the credentials for publishing to crates.io */ | ||
export async function checkForCreds() { | ||
if (isCi) { | ||
return process.env.CARGO_REGISTRY_TOKEN | ||
} | ||
|
||
const credsFile = join(userHome, '.cargo', 'credentials') | ||
try { | ||
await access(credsFile) | ||
return true | ||
} catch (error) { | ||
return false | ||
} | ||
} | ||
|
||
export async function getWorkspaceMembers(): Promise< | ||
{ | ||
packagePath: string | ||
packageToml: any | ||
packageContent: string | ||
}[] | ||
> { | ||
const { toml } = await getCargoConfig() | ||
return toml.workspace.members.map(async (member: string) => { | ||
const packagePath = join(process.cwd(), member, 'Cargo.toml') | ||
const packageContent = (await readFile(packagePath)).toString() | ||
const packageToml = parseToml(packageContent.toString()) | ||
return { | ||
packagePath, | ||
packageToml, | ||
packageContent, | ||
} | ||
}) | ||
} | ||
|
||
/** Bump the version in cargo.toml */ | ||
export async function bumpVersions(bumpBy: SEMVER) { | ||
const workspaceMembers = await getWorkspaceMembers() | ||
const promises = workspaceMembers.map(async (member) => { | ||
const { packagePath, packageContent, packageToml } = member | ||
const versionOld = packageToml.package.version | ||
const versionNew = inc(versionOld, bumpBy as ReleaseType) | ||
|
||
if (!versionNew) { | ||
throw new Error(`Could not increment previous version: ${versionOld}`) | ||
} | ||
|
||
const replaceOld = `version = "${versionOld}"` | ||
const replaceNew = `version = "${versionNew}"` | ||
const contentNew = packageContent.replace(replaceOld, replaceNew) | ||
await writeFile(packagePath, contentNew) | ||
return versionNew | ||
}) | ||
return await Promise.all(promises) | ||
} | ||
|
||
/** Deploy Rust crates */ | ||
export default class CratesPlugin implements IPlugin { | ||
/** The name of the plugin */ | ||
name = 'crates-plugin' | ||
|
||
/** Tap into auto plugin points. */ | ||
apply(auto: Auto) { | ||
auto.hooks.beforeShipIt.tap(this.name, () => { | ||
if (!checkForCreds()) { | ||
throw new Error('Cargo token is needed for the Crates plugin!') | ||
} | ||
}) | ||
|
||
auto.hooks.getAuthor.tapPromise(this.name, async () => { | ||
const { toml } = await getCargoConfig() | ||
const authors = toml.workspace.authors | ||
auto.logger.log.info(`Crate authors: ${authors}`) | ||
return authors | ||
}) | ||
|
||
auto.hooks.getPreviousVersion.tapPromise(this.name, async () => { | ||
const { toml } = await getCargoConfig() | ||
const version = auto.prefixRelease(toml.workspace.version) | ||
auto.logger.log.info(`Crate version: ${version}`) | ||
return version | ||
}) | ||
|
||
auto.hooks.version.tapPromise(this.name, async ({ bump, dryRun, quiet }) => { | ||
const newVersions = await bumpVersions(bump) | ||
newVersions.forEach(async (versionNew) => { | ||
if (dryRun) { | ||
if (quiet) { | ||
console.log(versionNew) | ||
} else { | ||
auto.logger.log.info(`Would have published: ${versionNew}`) | ||
} | ||
|
||
return | ||
} | ||
|
||
auto.logger.log.info(`Bumped version to: ${versionNew}`) | ||
}) | ||
auto.logger.log.info('Building to update Cargo.lock') | ||
await execPromise('cargo', ['build']) | ||
auto.logger.verbose.info('Committing files') | ||
await execPromise('git', ['add', 'Cargo.toml', 'Cargo.lock']) | ||
await execPromise('git', ['commit', '-m', `'Bump version to: ${newVersions[0]} [skip ci]'`, '--no-verify']) | ||
auto.logger.log.info('Create git commit for new version') | ||
}) | ||
|
||
auto.hooks.publish.tapPromise(this.name, async () => { | ||
const workspaceMembers = await getWorkspaceMembers() | ||
const promises = workspaceMembers.map(async (member) => { | ||
const { packageToml } = member | ||
auto.logger.log.info('Publishing via cargo') | ||
await execPromise('cargo', ['publish', packageToml.name]) | ||
auto.logger.log.info('Publish complete') | ||
auto.logger.log.info('Pushing local git changes to origin remote') | ||
await execPromise('git', ['push', '--follow-tags', '--set-upstream', auto.remote, auto.baseBranch]) | ||
auto.logger.log.info('Push complete') | ||
}) | ||
await Promise.all(promises) | ||
}) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# (Mon Nov 06 2023) | ||
|
||
:tada: This release contains work from a new contributor! :tada: | ||
|
||
Thank you, Michael Angelo Rivera ([@michaelangeloio](https://github.com/michaelangeloio)), for all your work! | ||
|
||
#### 🐛 Bug Fix | ||
|
||
- save work ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- add files ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- 0.1.1 ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- release test 1 ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- Release setup 2 [#5](https://github.com/michaelangeloio/does-it-throw/pull/5) ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- release setup [#4](https://github.com/michaelangeloio/does-it-throw/pull/4) ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- more tests [#3](https://github.com/michaelangeloio/does-it-throw/pull/3) ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- add tests [#2](https://github.com/michaelangeloio/does-it-throw/pull/2) ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
|
||
#### ⚠️ Pushed to `main` | ||
|
||
- remove codecov for now ([email protected]) | ||
- nit ([email protected]) | ||
- code cov ([email protected]) | ||
- make ci a little more secure ([email protected]) | ||
- wasm pack ([email protected]) | ||
- rename job ([email protected]) | ||
- more ci ([email protected]) | ||
- ci setup ([email protected]) | ||
- more tests ([email protected]) | ||
- adding tests, minor fix ([email protected]) | ||
- move to beta version ([email protected]) | ||
- constructor logic ([email protected]) | ||
- use hash set in extension ([email protected]) | ||
- check in code ([email protected]) | ||
- add arrow expression condition ([email protected]) | ||
- update build settings ([email protected]) | ||
- make it packageable ([email protected]) | ||
- save work ([email protected]) | ||
- upgrade deps ([email protected]) | ||
- add relative imports ([email protected]) | ||
- find methods and funcs that call ([email protected]) | ||
- save ([email protected]) | ||
- save work, figuring out proper wasm ([email protected]) | ||
- add sample file ([email protected]) | ||
- update development.md ([email protected]) | ||
- getting stuff started ([email protected]) | ||
- does it throw? ([email protected]) | ||
- first commit ([email protected]) | ||
|
||
#### Authors: 2 | ||
|
||
- Michael Angelo Rivera ([@michaelangeloio](https://github.com/michaelangeloio)) | ||
- michaelangrivera ([email protected]) | ||
|
||
--- |
Oops, something went wrong.