91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Build
 | 
						|
run-name: Build
 | 
						|
 | 
						|
on:
 | 
						|
  - push
 | 
						|
  - pull_request
 | 
						|
 | 
						|
jobs:
 | 
						|
  build:
 | 
						|
    name: Build NPM Project
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: node:20-alpine
 | 
						|
    steps:
 | 
						|
      - name: Clone Repository
 | 
						|
        uses: ztimson/actions/clone@develop
 | 
						|
 | 
						|
      - name: Install & Build
 | 
						|
        run: |
 | 
						|
          npm i
 | 
						|
          npm run build
 | 
						|
 | 
						|
      - name: Test
 | 
						|
        run: npm run test:coverage
 | 
						|
 | 
						|
      - name: Upload to Registry
 | 
						|
        uses: ztimson/actions/npm/publish@develop
 | 
						|
 | 
						|
      - name: Upload to NPM
 | 
						|
        uses: ztimson/actions/npm/publish@develop
 | 
						|
        with:
 | 
						|
          owner: ztimson
 | 
						|
          registry: https://registry.npmjs.org/
 | 
						|
          token: ${{secrets.NPM_TOKEN}}
 | 
						|
  tag:
 | 
						|
    name: Tag Version
 | 
						|
    needs: build
 | 
						|
    if: ${{github.ref_name}} == 'release'
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: node
 | 
						|
    steps:
 | 
						|
      - name: Clone Repository
 | 
						|
        uses: ztimson/actions/clone@develop
 | 
						|
 | 
						|
      - name: Get Version Number
 | 
						|
        run: echo "VERSION=$(cat package.json | grep version | grep -Eo ':.+' | grep -Eo '[[:alnum:]\.\/\-]+')" >> $GITHUB_ENV
 | 
						|
 | 
						|
      - name: Tag Version
 | 
						|
        uses: ztimson/actions/tag@develop
 | 
						|
        with:
 | 
						|
          tag: ${{env.VERSION}}
 | 
						|
  docs:
 | 
						|
    name: Publish Docs
 | 
						|
    runs-on: ubuntu-latest
 | 
						|
    container: docker:dind
 | 
						|
    steps:
 | 
						|
      - name: Clone Repository
 | 
						|
        uses: ztimson/actions/clone@develop
 | 
						|
 | 
						|
      - name: Build Image
 | 
						|
        run: |
 | 
						|
          REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%)
 | 
						|
          docker build -t "$REGISTRY/${{github.repository}}:${{github.ref_name}}" .
 | 
						|
 | 
						|
      - name: Build Image
 | 
						|
        run: |
 | 
						|
          echo "CHECKSUM: ${{env.CHECKSUM}}"
 | 
						|
          REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%)
 | 
						|
          docker build -t "$REGISTRY/${{github.repository}}:${{github.ref_name}}" --build-arg LICENSE_KEY="${{secrets.LICENSE_KEY}}" --build-arg UPDATE_TOKEN="${{secrets.UPDATE_TOKEN}}" .
 | 
						|
 | 
						|
      - name: Publish Branch Tag
 | 
						|
        run: |
 | 
						|
          REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%)
 | 
						|
          docker login -u ${{github.repository_owner}} -p ${{secrets.DEPLOY_TOKEN}} $REGISTRY
 | 
						|
          docker push "$REGISTRY/${{github.repository}}:${{github.ref_name}}"
 | 
						|
 | 
						|
      - name: Publish Version Tag
 | 
						|
        run: |
 | 
						|
          if [ "${{github.ref_name}}" = "master" ]; then
 | 
						|
            REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%)
 | 
						|
            docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:${{env.VERSION}}"
 | 
						|
            docker push "$REGISTRY/${{github.repository}}:${{env.VERSION}}"
 | 
						|
          fi
 | 
						|
 | 
						|
      - name: Publish Latest Tag
 | 
						|
        run: |
 | 
						|
          if [ "${{github.ref_name}}" = "master" ]; then
 | 
						|
            REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%)
 | 
						|
            docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:latest"
 | 
						|
            docker push "$REGISTRY/${{github.repository}}:latest"
 | 
						|
          fi
 |