Automated builds
This commit is contained in:
		
							parent
							
								
									72bbea626d
								
							
						
					
					
						commit
						eddc5d5ae8
					
				
					 2 changed files with 149 additions and 0 deletions
				
			
		
							
								
								
									
										66
									
								
								.forgejo/workflows/pull_request.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										66
									
								
								.forgejo/workflows/pull_request.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,66 @@ | ||||||
|  | on: | ||||||
|  |   pull_request: | ||||||
|  |     types: [opened, synchronize, reopened] | ||||||
|  | 
 | ||||||
|  | defaults: | ||||||
|  |   run: | ||||||
|  |     shell: bash | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   library_snapshot: | ||||||
|  |     runs-on: docker | ||||||
|  |     container: | ||||||
|  |       image: registry.garrity.co:8443/gs/ci-scala:latest | ||||||
|  |     name: 'Build and Test Library Snapshot' | ||||||
|  |     env: | ||||||
|  |       GS_MAVEN_USER: ${{ vars.GS_MAVEN_USER }} | ||||||
|  |       GS_MAVEN_TOKEN: ${{ secrets.GS_MAVEN_TOKEN }} | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v4 | ||||||
|  |         name: 'Checkout Repository' | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - name: 'Pre-Commit' | ||||||
|  |         run: | | ||||||
|  |           pre-commit install | ||||||
|  |           pre-commit run --all-files | ||||||
|  |       - name: 'Prepare Versioned Build' | ||||||
|  |         run: | | ||||||
|  |           latest_git_tag="$(git describe --tags --abbrev=0 || echo 'No Tags')" | ||||||
|  |           latest_commit_message="$(git show -s --format=%s HEAD)" | ||||||
|  |           if [[ "$latest_commit_message" == *"(major)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="major" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(minor)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="minor" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(patch)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="patch" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(docs)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(norelease)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           else | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           fi | ||||||
|  |           echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV | ||||||
|  |           echo "Previous Git Tag: $latest_git_tag" | ||||||
|  |           echo "Latest Commit: $latest_commit_message ($GS_RELEASE_TYPE) (SNAPSHOT)" | ||||||
|  |           if [ "$GS_RELEASE_TYPE" = "norelease" ]; then | ||||||
|  |             sbtn -Dsnapshot=true -Drelease="patch" semVerInfo | ||||||
|  |           else | ||||||
|  |             sbtn -Dsnapshot=true -Drelease="$GS_RELEASE_TYPE" semVerInfo | ||||||
|  |           fi | ||||||
|  |       - name: 'Unit Tests and Code Coverage' | ||||||
|  |         run: | | ||||||
|  |           sbtn clean | ||||||
|  |           sbtn coverage | ||||||
|  |           sbtn test | ||||||
|  |           sbtn coverageReport | ||||||
|  |       - name: 'Publish Snapshot' | ||||||
|  |         run: | | ||||||
|  |           echo "Testing env var propagation = ${{ env.GS_RELEASE_TYPE }}" | ||||||
|  |           if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then | ||||||
|  |             echo "Skipping publish due to GS_RELEASE_TYPE=norelease" | ||||||
|  |           else | ||||||
|  |             sbtn clean | ||||||
|  |             sbtn publish | ||||||
|  |           fi | ||||||
							
								
								
									
										83
									
								
								.forgejo/workflows/release.yaml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								.forgejo/workflows/release.yaml
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,83 @@ | ||||||
|  | on: | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  | 
 | ||||||
|  | defaults: | ||||||
|  |   run: | ||||||
|  |     shell: bash | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   library_release: | ||||||
|  |     runs-on: docker | ||||||
|  |     container: | ||||||
|  |       image: registry.garrity.co:8443/gs/ci-scala:latest | ||||||
|  |     name: 'Build and Release Library' | ||||||
|  |     env: | ||||||
|  |       GS_MAVEN_USER: ${{ vars.GS_MAVEN_USER }} | ||||||
|  |       GS_MAVEN_TOKEN: ${{ secrets.GS_MAVEN_TOKEN }} | ||||||
|  |     steps: | ||||||
|  |       - uses: actions/checkout@v4 | ||||||
|  |         name: 'Checkout Repository' | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  |       - name: 'Pre-Commit' | ||||||
|  |         run: | | ||||||
|  |           pre-commit install | ||||||
|  |           pre-commit run --all-files | ||||||
|  |       - name: 'Prepare Versioned Build' | ||||||
|  |         run: | | ||||||
|  |           latest_git_tag="$(git describe --tags --abbrev=0 || echo 'No Tags')" | ||||||
|  |           latest_commit_message="$(git show -s --format=%s HEAD)" | ||||||
|  |           if [[ "$latest_commit_message" == *"(major)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="major" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(minor)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="minor" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(patch)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="patch" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(docs)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           elif [[ "$latest_commit_message" == *"(norelease)"* ]]; then | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           else | ||||||
|  |               export GS_RELEASE_TYPE="norelease" | ||||||
|  |           fi | ||||||
|  | 
 | ||||||
|  |           echo "GS_RELEASE_TYPE=$GS_RELEASE_TYPE" >> $GITHUB_ENV | ||||||
|  |           echo "Previous Git Tag: $latest_git_tag" | ||||||
|  |           echo "Latest Commit: $latest_commit_message" | ||||||
|  |           echo "Selected Release Type: '$GS_RELEASE_TYPE'" | ||||||
|  | 
 | ||||||
|  |           if [ "$GS_RELEASE_TYPE" = "norelease" ]; then | ||||||
|  |             echo "Skipping all versioning for 'norelease' commit." | ||||||
|  |           else | ||||||
|  |             sbtn -Drelease="$GS_RELEASE_TYPE" semVerInfo | ||||||
|  |           fi | ||||||
|  |       - name: 'Unit Tests and Code Coverage' | ||||||
|  |         run: | | ||||||
|  |           if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then | ||||||
|  |             echo "Skipping build/test for 'norelease' commit." | ||||||
|  |           else | ||||||
|  |             sbtn clean | ||||||
|  |             sbtn coverage | ||||||
|  |             sbtn test | ||||||
|  |             sbtn coverageReport | ||||||
|  |           fi | ||||||
|  |       - name: 'Publish Release' | ||||||
|  |         run: | | ||||||
|  |           if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then | ||||||
|  |             echo "Skipping publish for 'norelease' commit." | ||||||
|  |           else | ||||||
|  |             sbtn clean | ||||||
|  |             sbtn semVerWriteVersionToFile | ||||||
|  |             sbtn publish | ||||||
|  |           fi | ||||||
|  |       - name: 'Create Git Tag' | ||||||
|  |         run: | | ||||||
|  |           if [ "${{ env.GS_RELEASE_TYPE }}" = "norelease" ]; then | ||||||
|  |             echo "Skipping Git tag for 'norelease' commit." | ||||||
|  |           else | ||||||
|  |             selected_version="$(cat .version)" | ||||||
|  |             git tag "$selected_version" | ||||||
|  |             git push origin "$selected_version" | ||||||
|  |           fi | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue