ΠΠΏΠΈΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΡΠ±ΠΎΡΠΊΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° ΡΡΠ°ΠΏΠ΅ Π²ΡΠΏΡΡΠΊΠ° Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ E2BIG. Π― ΠΏΡΠΎΠ²Π΅Π» Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ», ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π·Π΄Π΅ΡΡ Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠ΅) ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅ΠΊΡΡΡ.
Π― ΡΡΠ²ΡΡΠ²ΡΡ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅, Π½ΠΎ Ρ Π½Π΅ Π·Π½Π°Ρ, ΠΊΠ°ΠΊ ΠΎΡΠ»Π°Π΄ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ.
Π― ΠΏΠΎΠΏΡΠΎΠ±ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ ΠΈ ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΈ ΡΡΡΠΎΠΊΠΈ auto-exec , Π½ΠΎ Π»ΡΠ±ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ!
ΠΠΎΡΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ
ΠΡΡΠ°ΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΡΡΠΎ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ.
ΠΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΠΈΠ±ΠΎ ΡΠΏΠΎΠΌΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠΉ ΡΠ°ΠΉΠ», Π»ΠΈΠ±ΠΎ Π½Π΅ Π²ΡΠ΄Π°Π²Π°ΠΉΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ
ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΠΊΡΡΠΆΠ°ΡΡΠ΅ΠΉ ΡΡΠ΅Π΄Π΅:
Gitlab CI & Local (Linux-ΠΌΠ°ΡΠΈΠ½Π° Arch)
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ
ΠΠ΅ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΈΠ·-Π·Π° Π°Π²ΡΠΎ. Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠΏΠ°ΡΠ½Π°, ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π·Π΄Π΅ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ , ΠΊΡΠΎ ΡΡΠΎΠ»ΠΊΠ½Π΅ΡΡΡ Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ, ΠΈ Π΄Π»Ρ ΠΈΠ΄Π΅ΠΉ ΠΏΠΎ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΌΠΎΠ·Π³ΠΎΠ²ΠΎΠ³ΠΎ ΡΡΡΡΠΌΠ°.
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° Π² ΠΏΠ»Π°Π³ΠΈΠ½Π΅ exec
.
E2BIG
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° execSync
Π±ΡΠ»ΠΎ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ². Π― ΠΏΠΎΡΡΠΈ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΡ, - ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Ρ
ΡΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΠ΅ΡΠ΅Π· ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ env ( $ARG0
).
Π― Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΡ ΠΎΡΡΡΠ΄Π° Π²ΠΌΠ΅ΡΡΠΎ env var. ΠΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ, ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅
const { SEMVER, execPromise, getCurrentBranch } = require("@auto-it/core");
module.exports = class NextCherryPickPlugin {
constructor() {
this.name = "update docs";
}
/**
* Setup the plugin
*
* <strong i="7">@param</strong> {import('@auto-canary/core').default} auto
*/
apply(auto) {
auto.hooks.beforeCommitChangelog.tapPromise(this.name, async (config) => {
await execPromise("yarn", ["lint:doc:fix"]);
await execPromise("git", ["add", "."]);
});
}
};
ΠΡΠ»ΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ E2BIG, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π·Π΄ΠΎΡΠΎΠ²ΠΎ! (ΠΈΠ»ΠΈ Π»ΡΠ±ΠΎΠΉ Π΄ΡΡΠ³ΠΎΠΉ, ΠΊΡΠΎ Π²ΠΈΠ΄ΠΈΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ)
Π― ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°Ρ ΠΎΠ± ΡΡΠΎΠΌ, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ!
Π― Π²ΠΈΠΆΡ, ΡΡΠΎ Π² ΡΠΏΠΈΡΠΊΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² execSpawn ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ process.env
ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ
Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌΠ°Ρ Π½Π°ΠΌΠΈ ΠΎΠΏΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
env?
Π― (Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠΉ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ) ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Β«Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Π΅Β». ΠΠ°, ΡΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Π½ΠΎ ΠΎΠ½ΠΎ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ .
@hipstersmoothie
Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ, ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅
Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΡΡΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ, Ρ ΠΏΡΠΎΡΡΠΎ ΡΠΎΡ
ΡΠ°Π½ΡΡ Π΅Π³ΠΎ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ (Π½Π΅ Π² Node / NPM / TypeScript) ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ "plugins": ["path/to/file"]
Π² ΠΌΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΈΠ»ΠΈ ΡΡΠΎ Π΅ΡΠ΅ Π½Π΅ Π²ΡΠ΅?
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ Π±ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π³Π΄Π΅-Π½ΠΈΠ±ΡΠ΄Ρ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ ΠΈΡ ΠΎΡΡΡΠ΄Π° Π²ΠΌΠ΅ΡΡΠΎ env var. ΠΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΠ»Π°Π³ΠΈΠ½Π°.
Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ, ΡΡΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅