105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Release new versions
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     tags:
 | |
|       - 'v*.*.*'
 | |
| 
 | |
| jobs:
 | |
|   docker-release:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Get release version
 | |
|         run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
 | |
| 
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | |
| 
 | |
|       - name: Login to GitHub Container Registry
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           registry: ghcr.io
 | |
|           username: ${{ github.repository_owner }}
 | |
|           password: ${{ secrets.GITHUB_TOKEN }}
 | |
| 
 | |
|       - name: Login to Docker Hub
 | |
|         uses: docker/login-action@v3
 | |
|         with:
 | |
|           username: ${{ secrets.DOCKERHUB_USERNAME }}
 | |
|           password: ${{ secrets.DOCKERHUB_TOKEN }}
 | |
| 
 | |
|       - name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v3
 | |
| 
 | |
|       - name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v3
 | |
| 
 | |
|       - name: Build and push
 | |
|         uses: docker/build-push-action@v5
 | |
|         with:
 | |
|           context: .
 | |
|           file: ./Dockerfile
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             corentinth/it-tools:latest
 | |
|             corentinth/it-tools:${{ env.RELEASE_VERSION }}
 | |
|             ghcr.io/corentinth/it-tools:latest
 | |
|             ghcr.io/corentinth/it-tools:${{ env.RELEASE_VERSION}}            
 | |
| 
 | |
|   github-release:
 | |
|     runs-on: ubuntu-latest
 | |
|     needs: docker-release
 | |
|     steps:
 | |
|       - name: Get release version
 | |
|         run: echo "RELEASE_VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
 | |
| 
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4
 | |
| 
 | |
|       - run: corepack enable
 | |
| 
 | |
|       - uses: actions/setup-node@v3
 | |
|         with:
 | |
|           node-version: 20
 | |
|           cache: 'pnpm'
 | |
| 
 | |
|       - name: Install dependencies
 | |
|         run: pnpm i
 | |
| 
 | |
|       - name: Build the app
 | |
|         run: pnpm build
 | |
| 
 | |
|       - name: Zip the app
 | |
|         run: zip -r it-tools-${{ env.RELEASE_VERSION }}.zip dist/*
 | |
| 
 | |
|       - name: Get changelog
 | |
|         id: changelog
 | |
|         run: |
 | |
|           EOF=$(openssl rand -hex 8)
 | |
|           echo "changelog<<$EOF" >> $GITHUB_OUTPUT
 | |
|           node ./scripts/getLatestChangelog.mjs >> $GITHUB_OUTPUT
 | |
|           echo "$EOF" >> $GITHUB_OUTPUT          
 | |
| 
 | |
|       - name: Create Release
 | |
|         uses: softprops/action-gh-release@v1
 | |
|         with:
 | |
|           token: ${{ secrets.GITHUB_TOKEN }}
 | |
|           files: it-tools-${{ env.RELEASE_VERSION }}.zip
 | |
|           tag_name: v${{ env.RELEASE_VERSION }}
 | |
|           draft: true
 | |
|           prerelease: false
 | |
|           body: |
 | |
|             ## Docker images
 | |
| 
 | |
|             - Docker Hub
 | |
|               - `corentinth/it-tools:latest`
 | |
|               - `corentinth/it-tools:${{ env.RELEASE_VERSION }}`
 | |
|             - GitHub Container Registry
 | |
|               - `ghcr.io/corentinth/it-tools:latest`
 | |
|               - `ghcr.io/corentinth/it-tools:${{ env.RELEASE_VERSION}}`
 | |
| 
 | |
|             ## Changelog
 | |
| 
 | |
|             ${{ steps.changelog.outputs.changelog }}            
 |