105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.2 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
 | 
						|
 | 
						|
      - name: Login to GitHub Container Registry
 | 
						|
        uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3
 | 
						|
        with:
 | 
						|
          registry: ghcr.io
 | 
						|
          username: ${{ github.repository_owner }}
 | 
						|
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
      - name: Login to Docker Hub
 | 
						|
        uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3
 | 
						|
        with:
 | 
						|
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
						|
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
						|
 | 
						|
      - name: Set up QEMU
 | 
						|
        uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3
 | 
						|
 | 
						|
      - name: Set up Docker Buildx
 | 
						|
        uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3
 | 
						|
 | 
						|
      - name: Build and push
 | 
						|
        uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # 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@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4
 | 
						|
 | 
						|
      - run: corepack enable
 | 
						|
 | 
						|
      - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # 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@de2c0eb89ae2a093876385947365aca7b0e5f844 # 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 }}            
 |