Skip to content
Snippets Groups Projects
Verified Commit 658d7d88 authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

fix: no codefix; release and publish process

parent ce1dd137
No related branches found
No related tags found
No related merge requests found
...@@ -7,6 +7,7 @@ variables: ...@@ -7,6 +7,7 @@ variables:
stages: stages:
- test - test
- release
- deploy - deploy
#before_script: #before_script:
...@@ -38,7 +39,7 @@ web-tests: ...@@ -38,7 +39,7 @@ web-tests:
tags: tags:
- nixos-gen3 - nixos-gen3
script: script:
- nix develop .#gitlab --command run-web-tests - nix develop .#gitlab --command run-ci-web-tests
cache: cache:
untracked: true untracked: true
key: key:
...@@ -51,16 +52,20 @@ web-tests: ...@@ -51,16 +52,20 @@ web-tests:
- screenshot.png - screenshot.png
release:
stage: release
tags:
- nixos-gen3
script:
- nix develop .#gitlab --command release
when: on_success
deploy:
stage: deploy
tags:
- nixos-gen3
script:
- nix develop .#gitlab --command build-and-publish
when: on_success
#deploy:
# stage: deploy
# tags:
# - nixos-gen3
# script:
# - nix develop --command deploy
# after_script:
# - nix develop --command clean-up
#
# when: on_success
\ No newline at end of file
# Monster # Monster
Monster is an ideal choice for building visually appealing and high-performance web interfaces and websites using modern JavaScript techniques. Monster is an ideal choice for building visually appealing and high-performance web interfaces and websites using modern
JavaScript techniques.
By leveraging cutting-edge JavaScript features such as classes, WeakRef, WeakMaps, proxies, and the MutationObserver interface, Monster By leveraging cutting-edge JavaScript features such as classes, WeakRef, WeakMaps, proxies, and the MutationObserver
interface, Monster
offers a blend of traditional methods and innovative web components. offers a blend of traditional methods and innovative web components.
Designed for seamless integration, Monster complements existing web projects without dominating the entire architecture. Designed for seamless integration, Monster complements existing web projects without dominating the entire architecture.
...@@ -13,7 +15,8 @@ the native capabilities of HTML, CSS, and JavaScript for web development. ...@@ -13,7 +15,8 @@ the native capabilities of HTML, CSS, and JavaScript for web development.
With a design goal to optimize performance and achieve stellar outcomes, Monster achieves With a design goal to optimize performance and achieve stellar outcomes, Monster achieves
this using minimal JavaScript code. this using minimal JavaScript code.
Monster is built with ES6 modules and utilizes the [import](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/import) Monster is built with ES6 modules and uses
the [import](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/import)
and [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) statements. and [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) statements.
For certain functions, additional [polyfills](#polyfill) may be required. For certain functions, additional [polyfills](#polyfill) may be required.
...@@ -25,6 +28,7 @@ To access our documentation and examples, visit [monsterjs.org/](https://monster ...@@ -25,6 +28,7 @@ To access our documentation and examples, visit [monsterjs.org/](https://monster
## Installation ## Installation
Install Monster using npm, Yarn, or pnpm: Install Monster using npm, Yarn, or pnpm:
- `npm install @schukai/monster` - `npm install @schukai/monster`
- `yarn add @schukai/monster` - `yarn add @schukai/monster`
- `pnpm add @schukai/monster` - `pnpm add @schukai/monster`
...@@ -36,6 +40,7 @@ Here is a simple example of how to use Monster. We create a small file named `in ...@@ -36,6 +40,7 @@ Here is a simple example of how to use Monster. We create a small file named `in
```js ```js
import {Formatter} from '@schukai/monster/source/text/formatter.mjs'; import {Formatter} from '@schukai/monster/source/text/formatter.mjs';
const text = '${mykey${subkey}}'; const text = '${mykey${subkey}}';
let obj = { let obj = {
mykey2: "1", mykey2: "1",
...@@ -46,7 +51,8 @@ new Formatter(obj).format(text); ...@@ -46,7 +51,8 @@ new Formatter(obj).format(text);
// Outputs: 1 // Outputs: 1
``` ```
To integrate this function into a website, it is recommended to use a bundler such as [esbuild](https://esbuild.github.io/): To integrate this function into a website, it is recommended to use a bundler such
as [esbuild](https://esbuild.github.io/):
```sh ```sh
esbuild index.mjs --outfile=dist.js esbuild index.mjs --outfile=dist.js
...@@ -73,7 +79,8 @@ While we strive to work around some browser bugs, generally, we do not use polyf ...@@ -73,7 +79,8 @@ While we strive to work around some browser bugs, generally, we do not use polyf
However, many functions can be supplemented through [polyfill.io](https://polyfill.io/), thus enhancing compatibility. However, many functions can be supplemented through [polyfill.io](https://polyfill.io/), thus enhancing compatibility.
```html ```html
<script id="polyfill" src="https://polyfill.io/v3/polyfill.min.js?features=AbortController,Array.prototype.entries,Array.prototype.fill,Array.prototype.find,Array.prototype.includes,Array.prototype.keys,Array.prototype.sort,Array.prototype.values,atob,AudioContext,blissfuljs,Blob,CharacterData.prototype.nextElementSibling,CharacterData.prototype.previousElementSibling,CharacterData.prototype.remove,console,console.error,console.log,CSS.supports,CustomEvent,DocumentFragment,DocumentFragment.prototype.append,DocumentFragment.prototype.prepend,DOMRect,DOMTokenList,DOMTokenList.prototype.forEach,DOMTokenList.prototype.replace,Element.prototype.append,Element.prototype.getAttributeNames,Element.prototype.prepend,Element.prototype.remove,Element.prototype.scroll,Event,EventSource,fetch,Function.prototype.name,globalThis,HTMLDocument,HTMLPictureElement,HTMLTemplateElement,IntersectionObserver,IntersectionObserverEntry,Intl,Intl.DateTimeFormat,Intl.NumberFormat,Intl.PluralRules,Map,Math.log2,MutationObserver,Node.prototype.contains,Node.prototype.getRootNode,Node.prototype.isConnected,Node.prototype.isSameNode,NodeList.prototype.forEach,Number.isFinite,Number.isInteger,Object.assign,Object.entries,Object.freeze,Object.getOwnPropertyNames,Object.prototype.toString,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,requestAnimationFrame,ResizeObserver,Set,String.prototype.includes,String.prototype.matchAll,String.prototype.padStart,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,TextDecoder,TextEncoder,Uint16Array,Uint8Array,URLSearchParams,WeakSet" <script id="polyfill"
src="https://polyfill.io/v3/polyfill.min.js?features=AbortController,Array.prototype.entries,Array.prototype.fill,Array.prototype.find,Array.prototype.includes,Array.prototype.keys,Array.prototype.sort,Array.prototype.values,atob,AudioContext,blissfuljs,Blob,CharacterData.prototype.nextElementSibling,CharacterData.prototype.previousElementSibling,CharacterData.prototype.remove,console,console.error,console.log,CSS.supports,CustomEvent,DocumentFragment,DocumentFragment.prototype.append,DocumentFragment.prototype.prepend,DOMRect,DOMTokenList,DOMTokenList.prototype.forEach,DOMTokenList.prototype.replace,Element.prototype.append,Element.prototype.getAttributeNames,Element.prototype.prepend,Element.prototype.remove,Element.prototype.scroll,Event,EventSource,fetch,Function.prototype.name,globalThis,HTMLDocument,HTMLPictureElement,HTMLTemplateElement,IntersectionObserver,IntersectionObserverEntry,Intl,Intl.DateTimeFormat,Intl.NumberFormat,Intl.PluralRules,Map,Math.log2,MutationObserver,Node.prototype.contains,Node.prototype.getRootNode,Node.prototype.isConnected,Node.prototype.isSameNode,NodeList.prototype.forEach,Number.isFinite,Number.isInteger,Object.assign,Object.entries,Object.freeze,Object.getOwnPropertyNames,Object.prototype.toString,Reflect,Reflect.defineProperty,Reflect.get,Reflect.getOwnPropertyDescriptor,Reflect.setPrototypeOf,requestAnimationFrame,ResizeObserver,Set,String.prototype.includes,String.prototype.matchAll,String.prototype.padStart,Symbol,Symbol.for,Symbol.hasInstance,Symbol.iterator,TextDecoder,TextEncoder,Uint16Array,Uint8Array,URLSearchParams,WeakSet"
crossorigin="anonymous" crossorigin="anonymous"
referrerpolicy="no-referrer"></script> referrerpolicy="no-referrer"></script>
``` ```
...@@ -85,12 +92,13 @@ The issue list of this repository is exclusively for bug reports and feature req ...@@ -85,12 +92,13 @@ The issue list of this repository is exclusively for bug reports and feature req
## Issues ## Issues
Please ensure you read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines may Please ensure you read the Issue Reporting Checklist before opening an issue. Issues not conforming to the guidelines
may
be closed immediately. be closed immediately.
## License ## License
Copyright © 2023 schukai GmbH Copyright © 2024 schukai GmbH
Licensed under [AGPL](https://www.gnu.org/licenses/agpl-3.0.de.html). Commercial licenses are also available. Licensed under [AGPL](https://www.gnu.org/licenses/agpl-3.0.de.html). Commercial licenses are also available.
......
...@@ -123,14 +123,18 @@ ...@@ -123,14 +123,18 @@
scriptCleanUp = pkgs'.callPackage ./nix/scripts/clean-up.nix {inherit pkgs';}; scriptCleanUp = pkgs'.callPackage ./nix/scripts/clean-up.nix {inherit pkgs';};
scriptRunCITests = pkgs'.callPackage ./nix/scripts/run-ci-tests.nix {inherit pkgs';}; scriptRunCITests = pkgs'.callPackage ./nix/scripts/run-ci-tests.nix {inherit pkgs';};
scriptRunCIWebTests = pkgs'.callPackage ./nix/scripts/run-ci-web-tests.nix {inherit pkgs';};
scriptRelease = pkgs'.callPackage ./nix/scripts/release.nix {inherit pkgs';}; scriptRelease = pkgs'.callPackage ./nix/scripts/release.nix {inherit pkgs';};
scriptBuildAndPublish = pkgs'.callPackage ./nix/scripts/build-and-publish.nix {inherit pkgs';};
commonPackages = import ./nix/config/common-packages.nix {inherit pkgs';}; commonPackages = import ./nix/config/common-packages.nix {inherit pkgs';};
extendedPackages = [ extendedPackages = [
scriptCleanUp scriptCleanUp
scriptRunCITests scriptRunCITests
scriptRunCIWebTests
scriptRelease scriptRelease
scriptBuildAndPublish
]; ];
scriptPackages = [ scriptPackages = [
......
{ {
pkgs, pkgs',
commonScript,
system, system,
self,
... ...
}: }: let
# derivation is a function that takes a set of attributes and returns a set of attributes. buildDate = builtins.toString self.lastModified;
# https://nixos.org/manual/nix/stable/language/derivations.html releaseInfo = import ../config/release.nix;
in
derivation { derivation {
name = "monster"; name = "monster";
builder = "${pkgs.bash}/bin/bash"; version = releaseInfo.version;
builder = "${pkgs'.bash}/bin/bash";
args = let args = let
script = pkgs.callPackage ../scripts/build.nix {inherit commonScript;}; script = pkgs'.callPackage ../scripts/build.nix {inherit pkgs' system;};
in ["${script}/bin/build"]; in ["${script}/bin/build"];
buildInputs = with pkgs; []; buildInputs = with pkgs'; [];
system = system; system = system;
} }
{pkgs', ...}: let {pkgs',
system,
self,
...}: let
bashFktScript = import ./bash-fkt.nix {
inherit pkgs';
};
releaseInfo = import ../config/release.nix;
monster = pkgs'.callPackage ../packages/monster.nix {inherit pkgs' system self;};
in in
pkgs'.writeShellScriptBin "build-and-publish" '' pkgs'.writeShellScriptBin "build-and-publish" ''
source ${pkgs'.common}/bin/common source ${pkgs'.common}/bin/common
${bashFktScript}
echo_section "build and publish"
echo_hint "This script will run the tests for the project, build the tarball and publish it to the repository."
echo_hint "The command is executed in the current working directory and not in a nix derivation."
cd_working_dir cd_working_dir
echo_step "Update the monster file" echo_section "build and publish"
if ! ${pkgs'.nodejs_22}/bin/node ./development/scripts/buildMonsterFile.mjs archive=$(ls ${monster} | grep tgz)
then
echo_fail "script buildMonsterFile.mjs failed, check your JS!"
exit 1
fi
echo_ok "Monster file updated."
echo_section "run tests"
TEST_PATH="./test"
TEST_CASES_PATH="''${TEST_PATH}/cases/"
if ! ${pkgs'.nodePackages.mocha}/bin/mocha --colors --jobs 1 --bail --recursive $TEST_CASES_PATH
then
echo_fail "Tests failed, check your JS!"
exit 1
fi
echo_ok "Tests passed."
tempDir=$(${pkgs'.coreutils}/bin/mktemp -d)
if ! nix build --no-link --json .#monster > $tempDir/build_result.json
then
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_fail "Failed to build the project."
echo_hint "You can test the build by running ' nix build .#monster --print-build-logs'."
exit 1
fi
echo_step "Check if git is clean"
if [[ -n "$(git status --porcelain)" ]]; then
echo_fail "Git is not clean. Exiting."
echo_hint "You must commit all changes before you can publish a new version."
echo_hint "You can stash your changes with 'git stash' and apply them later with 'git stash pop'."
exit 1
fi
cd $tempDir
result=$(${pkgs'.jq}/bin/jq -r '.[].outputs.out' < $tempDir/build_result.json)
${pkgs'.coreutils}/bin/rm build_result.json
tarArchive=$(${pkgs'.findutils}/bin/find $result -name "*.tgz")
if [ -z "$tarArchive" ]
then
echo_fail "Failed to find the tarball."
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
exit 1
fi
## npm instead of pnpm because of https://github.com/pnpm/pnpm/issues/7950 ## npm instead of pnpm because of https://github.com/pnpm/pnpm/issues/7950
if ! publishingResult=$(${pkgs'.nodejs_22}/bin/npm publish "$tarArchive" --json --dry-run --no-git-checks --access public) if ! publishingResult=$(${pkgs'.nodejs_22}/bin/npm publish "${monster}/$archive" --json --dry-run --no-git-checks --access public)
then then
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_fail "Failed to publish the project." echo_fail "Failed to publish the project."
exit 1 exit 1
fi fi
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_hint "ID: $(echo $publishingResult | jq .id)" echo_hint "ID: $(echo $publishingResult | jq .id)"
echo_hint "Name: $(echo $publishingResult | jq .name)" echo_hint "Name: $(echo $publishingResult | jq .name)"
echo_hint "Version $(echo $publishingResult | jq .version)" echo_hint "Version $(echo $publishingResult | jq .version)"
......
{pkgs', ...}: let {pkgs', ...}: let
bashFktScript = import ./bash-fkt.nix {
inherit pkgs';
};
packageData = builtins.fromJSON (builtins.readFile ../../package.json); packageData = builtins.fromJSON (builtins.readFile ../../package.json);
version = packageData.version; version = packageData.version;
lib = pkgs'.lib; lib = pkgs'.lib;
root = ../..; root = ../..;
gitignore = ../../.gitignore;
source = ../../source; source = ../../source;
test = ../../test; test = ../../test;
...@@ -24,19 +28,19 @@ ...@@ -24,19 +28,19 @@
in in
pkgs'.writeShellScriptBin "build" '' pkgs'.writeShellScriptBin "build" ''
source ${pkgs'.common}/bin/common source ${pkgs'.common}/bin/common
${bashFktScript}
set -x
export PATH=${lib.makeBinPath [pkgs'.gzip pkgs'.gnutar]} export PATH=${lib.makeBinPath [pkgs'.gzip pkgs'.gnutar]}
export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME export HOME=$NIX_BUILD_TOP # Some packages need a writable HOME
${pkgs'.coreutils}/bin/mkdir -p $out
if ! ${pkgs'.rsync}/bin/rsync -a --exclude-from="${gitignore}" "${source}/." "./source/" if ! ${pkgs'.rsync}/bin/rsync -a --exclude-from="${root}/.gitignore" "${source}/." "./source/"
then then
echo_fail "Failed to copy source files. Exiting." echo_fail "Failed to copy source files. Exiting."
exit 1 exit 1
fi fi
if ! ${pkgs'.rsync}/bin/rsync -a --exclude-from="${gitignore}" "${test}/." "./test/" if ! ${pkgs'.rsync}/bin/rsync -a --exclude-from="${root}/.gitignore" "${test}/." "./test/"
then then
echo_fail "Failed to copy test files. Exiting." echo_fail "Failed to copy test files. Exiting."
exit 1 exit 1
...@@ -66,6 +70,7 @@ in ...@@ -66,6 +70,7 @@ in
exit 1 exit 1
fi fi
${pkgs'.coreutils}/bin/mkdir -p $out
if ! ${pkgs'.gnutar}/bin/tar -czvf $out/monster-${version}.tgz . if ! ${pkgs'.gnutar}/bin/tar -czvf $out/monster-${version}.tgz .
then then
echo_fail "Failed to create tarball. Exiting." echo_fail "Failed to create tarball. Exiting."
......
{pkgs', ...}: let {pkgs', ...}: pkgs'.writeShellScriptBin "create-new-component-class" ''
in
pkgs'.writeShellScriptBin "create-new-component-class" ''
source ${pkgs'.common}/bin/common source ${pkgs'.common}/bin/common
echo_section "create new component class" echo_section "create new component class"
......
{pkgs', ...}: let
ciRepositoryUrl = builtins.getEnv "CI_REPOSITORY_URL";
ciProjectDir = builtins.getEnv "CI_PROJECT_DIR";
ciJobToken = builtins.getEnv "CI_JOB_TOKEN";
ciCommitSha = builtins.getEnv "CI_COMMIT_SHA";
ciCommitRefName = builtins.getEnv "CI_COMMIT_REF_NAME";
gitlabToken = builtins.getEnv "GITLAB_TOKEN";
gitlabUserEmail = builtins.getEnv "GITLAB_USER_EMAIL";
gitlabUserName = builtins.getEnv "GITLAB_USER_NAME";
in
pkgs'.writeShellScriptBin "deploy" ''
${commonScript}
echo_header "Deploying"
if [ -z "${gitlabToken}" ]; then
echo_fail "Error: CI_JOB_TOKEN variable is not set."
echo_hint "This script is intended to be run in GitLab CI."
exit 1
fi
if [ -z "${ciRepositoryUrl}" ]; then
echo_fail "Error: CI_REPOSITORY_URL environment variable is not set."
exit 1
fi
if [ -z "${ciProjectDir}" ]; then
echo_fail "Error: CI_PROJECT_DIR environment variable is not set."
exit 1
fi
cd ${ciProjectDir} || exit 1
${pkgs'.git}/bin/git config --global user.email "${gitlabUserEmail}"
${pkgs'.git}/bin/git config --global user.name "${gitlabUserName}"
${pkgs'.git}/bin/git config --global credential.helper '!f() { echo "username=gitlab-ci-token"; echo "password=${ciJobToken}"; }; f'
${pkgs'.git}/bin/git config --global pull.rebase true
${pkgs'.git}/bin/git config --global http.sslVerify "false"
${pkgs'.git}/bin/git remote set-url origin https://pad:${gitlabToken}@''${CI_REPOSITORY_URL#*@}
${pkgs'.git}/bin/git fetch --all --tags --unshallow
${pkgs'.git}/bin/git reset --hard origin/master
${pkgs'.git}/bin/git clean -fd
${pkgs'.git}/bin/git checkout $CI_COMMIT_REF_NAME
${pkgs'.git}/bin/git pull origin $CI_COMMIT_REF_NAME
if ! ${pkgs'.git}/bin/git --no-pager log --decorate=short --pretty=oneline -n 30
then
echo_fail "Error: Could not get git log."
exit 1
fi
${pkgs'.git}/bin/git fetch --prune --prune-tags
echo_step "Bumping version"
gitVersion=$(${versionBin} predict --exit-code-if-no-bump)
if [ -z "$gitVersion" ]; then
echo_ok "There is no version bump."
echo_ok "done"
exit 0
fi
gitVersion="v$gitVersion"
echo "{\"version\": \"$gitVersion\", \"release\": \"${ciCommitSha}\"}" > release.json
${pkgs'.git}/bin/git add release.json
${pkgs'.nodejs}/bin/npm version $gitVersion --no-git-tag-version
${pkgs'.git}/bin/git add package.json package-lock.json
${updateChangelogScript}
${pkgs'.git}/bin/git add CHANGELOG.md
${pkgs'.git}/bin/git commit -m "chore: update release.json"
${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion"
${pkgs'.git}/bin/git --no-pager log --decorate=short --pretty=oneline -n 5
${pkgs'.git}/bin/git push -o ci.skip origin ${ciCommitRefName} --tags
echo_ok "done"
''
{pkgs', ...}: let
in
pkgs'.writeShellScriptBin "prepare-release" ''
source ${pkgs'.common}/bin/common
echo_section "prepare-release"
echo_hint "This script will update changelog and increment version if necessary."
echo_hint "The command is executed in the current working directory and not in a nix derivation."
cd_working_dir
echo_step "calculate new version"
if ! ${pkgs'.nodejs_22}/bin/node ./development/scripts/buildMonsterFile.mjs
then
echo_fail "script buildMonsterFile.mjs failed, check your JS!"
exit 1
fi
echo_ok "Monster file updated."
echo_section "run tests"
TEST_PATH="./test"
TEST_CASES_PATH="''${TEST_PATH}/cases/"
if ! ${pkgs'.nodePackages.mocha}/bin/mocha --colors --jobs 1 --bail --recursive $TEST_CASES_PATH
then
echo_fail "Tests failed, check your JS!"
exit 1
fi
echo_ok "Tests passed."
tempDir=$(${pkgs'.coreutils}/bin/mktemp -d)
if ! nix build --no-link --json .#monster > $tempDir/build_result.json
then
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_fail "Failed to build the project."
echo_hint "You can test the build by running ' nix build .#monster --print-build-logs'."
exit 1
fi
echo_step "Check if git is clean"
if [[ -n "$(git status --porcelain)" ]]; then
echo_fail "Git is not clean. Exiting."
echo_hint "You must commit all changes before you can publish a new version."
echo_hint "You can stash your changes with 'git stash' and apply them later with 'git stash pop'."
exit 1
fi
cd $tempDir
result=$(${pkgs'.jq}/bin/jq -r '.[].outputs.out' < $tempDir/build_result.json)
${pkgs'.coreutils}/bin/rm build_result.json
tarArchive=$(${pkgs'.findutils}/bin/find $result -name "*.tgz")
if [ -z "$tarArchive" ]
then
echo_fail "Failed to find the tarball."
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
exit 1
fi
## npm instead of pnpm because of https://github.com/pnpm/pnpm/issues/7950
if ! publishingResult=$(${pkgs'.nodejs_22}/bin/npm publish "$tarArchive" --json --dry-run --no-git-checks --access public)
then
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_fail "Failed to publish the project."
exit 1
fi
cd -
${pkgs'.coreutils}/bin/rm -rf $tempDir
echo_hint "ID: $(echo $publishingResult | jq .id)"
echo_hint "Name: $(echo $publishingResult | jq .name)"
echo_hint "Version $(echo $publishingResult | jq .version)"
echo_hint "SHA Sum: $(echo $publishingResult | jq .shasum)"
echo_hint "Files: $(echo $publishingResult | jq .entryCount)"
echo_ok "Build and publish successful."
''
...@@ -58,12 +58,15 @@ in ...@@ -58,12 +58,15 @@ in
export MNEMONIC=$(echo $NAME | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]//g') export MNEMONIC=$(echo $NAME | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]//g')
${pkgs'.envsubst}/bin/envsubst < ./nix/config/release.nix.template > ./nix/config/release.nix ${pkgs'.envsubst}/bin/envsubst < ./nix/config/release.nix.template > ./nix/config/release.nix
${pkgs'.nodejs_22}/bin/pnpm version "$gitVersion"
${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion" ${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion"
${updateChangelogScript}/bin/update-changelog ${updateChangelogScript}/bin/update-changelog
cd $CI_PROJECT_DIR || exit 1 cd $CI_PROJECT_DIR || exit 1
${pkgs'.git}/bin/git tag -d "$gitVersion" ${pkgs'.git}/bin/git tag -d "$gitVersion"
${pkgs'.git}/bin/git commit -m "chore: release $gitVersion" CHANGELOG.md ./nix/config/release.nix ${pkgs'.git}/bin/git commit -m "chore: release $gitVersion" CHANGELOG.md ./nix/config/release.nix package.json
${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion" ${pkgs'.git}/bin/git tag -a $gitVersion -m"chore: bump version to $gitVersion"
${pkgs'.git}/bin/git --no-pager log --decorate=short --pretty=oneline -n 5 ${pkgs'.git}/bin/git --no-pager log --decorate=short --pretty=oneline -n 5
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment