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@b4ffde65f46336ab88eb53be808477a3936bae11 # 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: |
 | 
						|
            thetechnetwork/it-tools:latest
 | 
						|
            thetechnetwork/it-tools:${{ env.RELEASE_VERSION }}
 | 
						|
            ghcr.io/thetechnetwork/it-tools:latest
 | 
						|
            ghcr.io/thetechnetwork/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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
 | 
						|
 | 
						|
      - run: corepack enable
 | 
						|
 | 
						|
      - uses: actions/setup-node@v4
 | 
						|
        with:
 | 
						|
          node-version: 16
 | 
						|
          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
 | 
						|
              - `thetechnetwork/it-tools:latest`
 | 
						|
              - `thetechnetwork/it-tools:${{ env.RELEASE_VERSION }}`
 | 
						|
            - GitHub Container Registry
 | 
						|
              - `ghcr.io/thetechnetwork/it-tools:latest`
 | 
						|
              - `ghcr.io/thetechnetwork/it-tools:${{ env.RELEASE_VERSION}}`
 | 
						|
 | 
						|
            ## Changelog
 | 
						|
 | 
						|
            ${{ steps.changelog.outputs.changelog }}            
 |