mirror of
				https://github.com/TeamPiped/Piped-Kubernetes.git
				synced 2024-08-14 23:57:15 +00:00 
			
		
		
		
	CI: Let's make CI workflows too.
This commit is contained in:
		
							parent
							
								
									00d7f2b0eb
								
							
						
					
					
						commit
						d4ff839dd3
					
				
					 3 changed files with 130 additions and 25 deletions
				
			
		
							
								
								
									
										80
									
								
								.github/workflows/charts-release-ghpages.yaml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								.github/workflows/charts-release-ghpages.yaml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,80 @@ | ||||||
|  | name: "Charts: Release to GitHub pages" | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   workflow_call: | ||||||
|  |     inputs: | ||||||
|  |       charts: | ||||||
|  |         description: > | ||||||
|  |           Json encoded list of Helm charts to release. | ||||||
|  |           Defaults to releasing everything. | ||||||
|  |         default: "[]" | ||||||
|  |         required: false | ||||||
|  |         type: string | ||||||
|  |     secrets: | ||||||
|  |       BOT_APP_ID: | ||||||
|  |         required: true | ||||||
|  |       BOT_APP_PRIVATE_KEY: | ||||||
|  |         required: true | ||||||
|  | 
 | ||||||
|  | env: | ||||||
|  |   HELM_VERSION: 3.10.2 | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   release-charts: | ||||||
|  |     name: Release charts | ||||||
|  |     #runs-on: ["self-hosted", "X64"] | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - name: Workaround | ||||||
|  |         run: export OPENSSL_CONF=/dev/null | ||||||
|  | 
 | ||||||
|  |       - name: Checkout charts branch | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           token: ${{ secrets.GITHUB_TOKEN }} | ||||||
|  |           path: "src" | ||||||
|  |           fetch-depth: 0 | ||||||
|  | 
 | ||||||
|  |       - name: Checkout gh-pages branch | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           token: ${{ secrets.GITHUB_TOKEN}} | ||||||
|  |           path: "dest" | ||||||
|  |           ref: "gh-pages" | ||||||
|  |           fetch-depth: 0 | ||||||
|  | 
 | ||||||
|  |       - name: Install Kubernetes tools | ||||||
|  |         uses: yokawasa/action-setup-kube-tools@v0.9.3 | ||||||
|  |         with: | ||||||
|  |           setup-tools: | | ||||||
|  |             helmv3 | ||||||
|  |           helm: "${{ env.HELM_VERSION }}" | ||||||
|  | 
 | ||||||
|  |       - name: Package Helm Charts | ||||||
|  |         shell: bash | ||||||
|  |         env: | ||||||
|  |           SRC_DIR: "src/charts" | ||||||
|  |           DEST_DIR: "dest" | ||||||
|  |         run: | | ||||||
|  |           CHARTS=( $(yq --null-input e '${{ inputs.charts }}[]' ) ) | ||||||
|  |           for CHART in "${CHARTS[@]}" ; do | ||||||
|  |             mapfile -t CHART_PATH_PARTS < <(echo "$CHART" | tr '/' '\n') | ||||||
|  |             CHART_TYPE=${CHART_PATH_PARTS[0]} | ||||||
|  |             helm dep up "${SRC_DIR}/${CHART}" | ||||||
|  |             helm package "${SRC_DIR}/${CHART}" -u -d "${DEST_DIR}/${CHART_TYPE}" | ||||||
|  |           done | ||||||
|  |       - name: Update chart index | ||||||
|  |         shell: bash | ||||||
|  |         working-directory: dest | ||||||
|  |         run: | | ||||||
|  |           helm repo index . --url https://helm.samipsolutions.fi/ | ||||||
|  |       - name: Commit changes | ||||||
|  |         shell: bash | ||||||
|  |         working-directory: dest | ||||||
|  |         run: | | ||||||
|  |           git config user.name "$GITHUB_ACTOR" | ||||||
|  |           git config user.email "$GITHUB_ACTOR@users.noreply.github.com" | ||||||
|  |           git add $(git ls-files -o --exclude-standard) | ||||||
|  |           git add index.yaml | ||||||
|  |           git commit -m "Updated from ref: $GITHUB_SHA" | ||||||
|  |           git push | ||||||
							
								
								
									
										50
									
								
								.github/workflows/charts-release.yaml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								.github/workflows/charts-release.yaml
									
										
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | ||||||
|  | name: "Charts: Release" | ||||||
|  | 
 | ||||||
|  | concurrency: helm-release | ||||||
|  | 
 | ||||||
|  | on: | ||||||
|  |   workflow_dispatch: | ||||||
|  |     inputs: | ||||||
|  |       charts: | ||||||
|  |         description: > | ||||||
|  |           Charts to release. Comma-separated string. | ||||||
|  |           Defaults to releasing everything. | ||||||
|  |         default: "" | ||||||
|  |         required: false | ||||||
|  | 
 | ||||||
|  |   push: | ||||||
|  |     branches: | ||||||
|  |       - main | ||||||
|  |     paths: | ||||||
|  |       - "charts/**" | ||||||
|  | 
 | ||||||
|  | env: | ||||||
|  |   HELM_VERSION: 3.10.2 | ||||||
|  | 
 | ||||||
|  | jobs: | ||||||
|  |   prepare: | ||||||
|  |     name: Prepare data required for release | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     outputs: | ||||||
|  |       charts-to-release: ${{ steps.collect-charts.outputs.charts }} | ||||||
|  |     steps: | ||||||
|  |       - name: Checkout | ||||||
|  |         uses: actions/checkout@v3 | ||||||
|  |         with: | ||||||
|  |           fetch-depth: 0 | ||||||
|  | 
 | ||||||
|  |       - name: Collect charts to release | ||||||
|  |         uses: bjw-s/helm-charts-actions/collect-charts@main | ||||||
|  |         id: collect-charts | ||||||
|  |         with: | ||||||
|  |           repoConfigFile: ./.ci/repo-config.yaml | ||||||
|  |           overrideCharts: "[${{ inputs.charts }}]" | ||||||
|  | 
 | ||||||
|  |   release-github-pages: | ||||||
|  |     name: Release Charts to GitHub pages | ||||||
|  |     uses: ./.github/workflows/charts-release-ghpages.yaml | ||||||
|  |     needs: | ||||||
|  |       - prepare | ||||||
|  |     with: | ||||||
|  |       charts: "${{ needs.prepare.outputs.charts-to-release }}" | ||||||
|  |     secrets: inherit | ||||||
							
								
								
									
										25
									
								
								.github/workflows/release-charts.yaml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/release-charts.yaml
									
										
									
									
										vendored
									
									
								
							|  | @ -1,25 +0,0 @@ | ||||||
| name: Release Charts |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   push: |  | ||||||
|     branches: |  | ||||||
|       - main |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   release: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     steps: |  | ||||||
|       - name: Checkout |  | ||||||
|         uses: actions/checkout@v2 |  | ||||||
|         with: |  | ||||||
|           fetch-depth: 0 |  | ||||||
| 
 |  | ||||||
|       - name: Configure Git |  | ||||||
|         run: | |  | ||||||
|           git config user.name "$GITHUB_ACTOR" |  | ||||||
|           git config user.email "$GITHUB_ACTOR@users.noreply.github.com" |  | ||||||
| 
 |  | ||||||
|       - name: Run chart-releaser |  | ||||||
|         uses: helm/chart-releaser-action@v1.1.0 |  | ||||||
|         env: |  | ||||||
|           CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue