mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-11-03 23:00:31 +01:00 
			
		
		
		
	Resolve "Automatic NPM publish."
This commit is contained in:
		@@ -3,6 +3,7 @@ image: node:8-alpine
 | 
				
			|||||||
stages:
 | 
					stages:
 | 
				
			||||||
  - test
 | 
					  - test
 | 
				
			||||||
  - build
 | 
					  - build
 | 
				
			||||||
 | 
					  - publish
 | 
				
			||||||
 | 
					
 | 
				
			||||||
before_script:
 | 
					before_script:
 | 
				
			||||||
  - npm install
 | 
					  - npm install
 | 
				
			||||||
@@ -24,3 +25,19 @@ build:
 | 
				
			|||||||
  artifacts:
 | 
					  artifacts:
 | 
				
			||||||
    paths:
 | 
					    paths:
 | 
				
			||||||
      - foris-*.tgz
 | 
					      - foris-*.tgz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publish_beta:
 | 
				
			||||||
 | 
					  stage: publish
 | 
				
			||||||
 | 
					  only:
 | 
				
			||||||
 | 
					    refs:
 | 
				
			||||||
 | 
					      - dev
 | 
				
			||||||
 | 
					  script:
 | 
				
			||||||
 | 
					    - sh scripts/publish.sh beta
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					publish_latest:
 | 
				
			||||||
 | 
					  stage: publish
 | 
				
			||||||
 | 
					  only:
 | 
				
			||||||
 | 
					    refs:
 | 
				
			||||||
 | 
					      - master
 | 
				
			||||||
 | 
					  script:
 | 
				
			||||||
 | 
					    - sh scripts/publish.sh latest
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										7
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
				
			|||||||
.PHONY: all install-js watch-js build-js publish-beta lint-js test-js create-messages update-messages docs clean
 | 
					.PHONY: all install-js watch-js build-js lint-js test-js create-messages update-messages docs clean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
all:
 | 
					all:
 | 
				
			||||||
	@echo "make install-js"
 | 
						@echo "make install-js"
 | 
				
			||||||
@@ -7,8 +7,6 @@ all:
 | 
				
			|||||||
	@echo "    Compile JS in watch mode."
 | 
						@echo "    Compile JS in watch mode."
 | 
				
			||||||
	@echo "make build-js"
 | 
						@echo "make build-js"
 | 
				
			||||||
	@echo "    Compile JS."
 | 
						@echo "    Compile JS."
 | 
				
			||||||
	@echo "make publish-beta"
 | 
					 | 
				
			||||||
	@echo "    Publish package with 'beta' tag"
 | 
					 | 
				
			||||||
	@echo "make lint-js"
 | 
						@echo "make lint-js"
 | 
				
			||||||
	@echo "    Run linter"
 | 
						@echo "    Run linter"
 | 
				
			||||||
	@echo "make test-js"
 | 
						@echo "make test-js"
 | 
				
			||||||
@@ -32,9 +30,6 @@ watch-js:
 | 
				
			|||||||
build-js:
 | 
					build-js:
 | 
				
			||||||
	npm run build
 | 
						npm run build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
publish-beta:
 | 
					 | 
				
			||||||
	npm publish --tag beta
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
lint:
 | 
					lint:
 | 
				
			||||||
	npm run lint
 | 
						npm run lint
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										17
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					# foris-js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Publishing package
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Beta versions
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Each commit to `dev` branch will result in publishing a new version of library
 | 
				
			||||||
 | 
					tagged `beta`. Versions names are based on commit SHA, e.g. 
 | 
				
			||||||
 | 
					`foris@0.1.0-d9073aa4.0`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Preparing a release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Crete a merge request to `dev` branch with version bumped
 | 
				
			||||||
 | 
					2. When merging add `[skip ci]` to commit message to prevent publishing
 | 
				
			||||||
 | 
					unnecessary version
 | 
				
			||||||
 | 
					3. Create a merge request from `dev` to `master` branch
 | 
				
			||||||
 | 
					4. New version should be published automatically
 | 
				
			||||||
							
								
								
									
										22
									
								
								scripts/publish.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								scripts/publish.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if test -z "$NPM_TOKEN"
 | 
				
			||||||
 | 
					then
 | 
				
			||||||
 | 
					    echo "\$NPM_TOKEN is not set"
 | 
				
			||||||
 | 
					    exit 1
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
					    # Need to replace "_" with "_" as GitLab CI won't accept secret vars with "-"
 | 
				
			||||||
 | 
					    echo "//registry.npmjs.org/:_authToken=$(echo $NPM_TOKEN | tr _ -)" > .npmrc
 | 
				
			||||||
 | 
					    echo "unsafe-perm = true" >> ~/.npmrc
 | 
				
			||||||
 | 
					    if test "$1" = "beta"
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        npm version prerelease --preid=$CI_COMMIT_SHORT_SHA --git-tag-version false
 | 
				
			||||||
 | 
					        npm publish --tag beta
 | 
				
			||||||
 | 
					    elif test "$1" = "latest"
 | 
				
			||||||
 | 
					    then
 | 
				
			||||||
 | 
					        npm publish
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        echo "Usage: publish.sh [ beta | latest ]"
 | 
				
			||||||
 | 
					        exit 1
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
		Reference in New Issue
	
	Block a user