61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Build Container
 | 
						|
run-name: Build Container
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
 | 
						|
jobs:
 | 
						|
  container:
 | 
						|
    name: Build Container
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: docker
 | 
						|
    steps:
 | 
						|
      - name: Build Container
 | 
						|
        run: |
 | 
						|
          REGISTRY="$(echo "${{github.server_url}}" | sed -E 's|https?://||')"
 | 
						|
          DOCKER_HUB=$([ -n "${{secrets.DOCKER_HUB_USER}}" ] && [ -n "${{secrets.DOCKER_HUB_TOKEN}}" ] && [ -n "${{secrets.DOCKER_HUB_IMAGE}}" ] && echo "true" || echo "false")
 | 
						|
          
 | 
						|
          git clone -b "${{github.ref_name}}" "${{github.token}}@${REGISTRY}/${{github.repository}}.git" .
 | 
						|
          VERSION="$(grep -oP '(?<="version": ")[^"]+' package.json)"
 | 
						|
  
 | 
						|
          docker login -u "${{github.repository_owner}}" -p "${{secrets.DEPLOY_TOKEN}}" "$REGISTRY"
 | 
						|
          if [ "$DOCKER_HUB" = "true" ]; then docker login -u "${{secrets.DOCKER_HUB_USER}}" -p "${{secrets.DOCKER_HUB_TOKEN}}" docker.io; fi
 | 
						|
  
 | 
						|
          docker build -t "$REGISTRY/${{github.repository}}:${{github.ref_name}}" .
 | 
						|
          docker push "$REGISTRY/${{github.repository}}:${{github.ref_name}}"
 | 
						|
          if [ "$DOCKER_HUB" = "true" ]; then
 | 
						|
            docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:${{github.ref_name}}"
 | 
						|
            docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:${{github.ref_name}}"
 | 
						|
          fi
 | 
						|
  
 | 
						|
          if [ "${{github.ref_name}}" = "master" ]; then
 | 
						|
            docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:$VERSION"
 | 
						|
            docker push "$REGISTRY/${{github.repository}}:$VERSION"
 | 
						|
 | 
						|
            if [ "$DOCKER_HUB" = "true" ]; then
 | 
						|
              docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:$VERSION"
 | 
						|
              docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:$VERSION"
 | 
						|
            fi
 | 
						|
 | 
						|
            docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:latest"
 | 
						|
            docker push "$REGISTRY/${{github.repository}}:latest"
 | 
						|
          
 | 
						|
            if [ "$DOCKER_HUB" = "true" ]; then
 | 
						|
              docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest"
 | 
						|
              docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest"
 | 
						|
            fi
 | 
						|
          fi
 | 
						|
 | 
						|
tag:
 | 
						|
    name: Git Tag
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: alpine/git
 | 
						|
    steps:
 | 
						|
      - name: Git Tag
 | 
						|
        run: |
 | 
						|
          git clone -b "${{github.ref_name}}" "${{github.server_url%%://*}}://${{github.token}}@${{github.server_url#*://}}/${{github.repository}}.git" .
 | 
						|
          VERSION="$(cat package.json | grep 'version' | grep -Eo '([0-9]+\.?)+(-[0-9a-zA-Z\-\.]+)?')"
 | 
						|
          
 | 
						|
          git tag -f $VERSION ${{github.sha}}
 | 
						|
          git push -f origin $VERSION
 |