actions: automatically create release when version/* tag is created, run tests before creating release
This commit is contained in:
		
							
								
								
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							@ -9,7 +9,7 @@ env:
 | 
				
			|||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  # Linting
 | 
					  # Linting
 | 
				
			||||||
  pylint:
 | 
					  pylint:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
@ -26,7 +26,7 @@ jobs:
 | 
				
			|||||||
      - name: Lint with pylint
 | 
					      - name: Lint with pylint
 | 
				
			||||||
        run: pipenv run pylint passbook
 | 
					        run: pipenv run pylint passbook
 | 
				
			||||||
  black:
 | 
					  black:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
@ -43,7 +43,7 @@ jobs:
 | 
				
			|||||||
      - name: Lint with black
 | 
					      - name: Lint with black
 | 
				
			||||||
        run: pipenv run black --check passbook
 | 
					        run: pipenv run black --check passbook
 | 
				
			||||||
  prospector:
 | 
					  prospector:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
@ -60,7 +60,7 @@ jobs:
 | 
				
			|||||||
      - name: Lint with prospector
 | 
					      - name: Lint with prospector
 | 
				
			||||||
        run: pipenv run prospector
 | 
					        run: pipenv run prospector
 | 
				
			||||||
  bandit:
 | 
					  bandit:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
@ -95,7 +95,7 @@ jobs:
 | 
				
			|||||||
        image: redis:latest
 | 
					        image: redis:latest
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
          - 6379:6379
 | 
					          - 6379:6379
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
@ -129,7 +129,7 @@ jobs:
 | 
				
			|||||||
        image: redis:latest
 | 
					        image: redis:latest
 | 
				
			||||||
        ports:
 | 
					        ports:
 | 
				
			||||||
          - 6379:6379
 | 
					          - 6379:6379
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - uses: actions/setup-python@v1
 | 
					      - uses: actions/setup-python@v1
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										20
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/release.yml
									
									
									
									
										vendored
									
									
								
							@ -7,7 +7,7 @@ on:
 | 
				
			|||||||
jobs:
 | 
					jobs:
 | 
				
			||||||
  # Build
 | 
					  # Build
 | 
				
			||||||
  build-server:
 | 
					  build-server:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - name: Docker Login Registry
 | 
					      - name: Docker Login Registry
 | 
				
			||||||
@ -26,7 +26,7 @@ jobs:
 | 
				
			|||||||
      - name: Push Docker Container to Registry (latest)
 | 
					      - name: Push Docker Container to Registry (latest)
 | 
				
			||||||
        run: docker push beryju/passbook:latest
 | 
					        run: docker push beryju/passbook:latest
 | 
				
			||||||
  build-static:
 | 
					  build-static:
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    services:
 | 
					    services:
 | 
				
			||||||
      postgres:
 | 
					      postgres:
 | 
				
			||||||
        image: postgres:latest
 | 
					        image: postgres:latest
 | 
				
			||||||
@ -58,7 +58,7 @@ jobs:
 | 
				
			|||||||
    needs:
 | 
					    needs:
 | 
				
			||||||
      - build-server
 | 
					      - build-server
 | 
				
			||||||
      - build-static
 | 
					      - build-static
 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@v1
 | 
				
			||||||
      - name: Run test suite in final docker images
 | 
					      - name: Run test suite in final docker images
 | 
				
			||||||
@ -68,17 +68,3 @@ jobs:
 | 
				
			|||||||
          docker-compose up --no-start
 | 
					          docker-compose up --no-start
 | 
				
			||||||
          docker-compose start postgresql redis
 | 
					          docker-compose start postgresql redis
 | 
				
			||||||
          docker-compose run -u root server bash -c "pip install --no-cache -r requirements-dev.txt && ./manage.py test"
 | 
					          docker-compose run -u root server bash -c "pip install --no-cache -r requirements-dev.txt && ./manage.py test"
 | 
				
			||||||
  package-helm:
 | 
					 | 
				
			||||||
    needs:
 | 
					 | 
				
			||||||
      - test-release
 | 
					 | 
				
			||||||
    runs-on: [ubuntu-latest]
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					 | 
				
			||||||
      - name: Install Helm
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          apt update && apt install -y curl
 | 
					 | 
				
			||||||
          curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
 | 
					 | 
				
			||||||
      - name: Helm package
 | 
					 | 
				
			||||||
        run: |
 | 
					 | 
				
			||||||
          helm dependency update helm/
 | 
					 | 
				
			||||||
          helm package helm/
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										53
									
								
								.github/workflows/tag.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.github/workflows/tag.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					on:
 | 
				
			||||||
 | 
					  push:
 | 
				
			||||||
 | 
					    tags:
 | 
				
			||||||
 | 
					    - 'version/*'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					name: Create Release from Tag
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					jobs:
 | 
				
			||||||
 | 
					  build:
 | 
				
			||||||
 | 
					    name: Create Release from Tag
 | 
				
			||||||
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
 | 
					    steps:
 | 
				
			||||||
 | 
					      - uses: actions/checkout@master
 | 
				
			||||||
 | 
					      - name: Pre-release test
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          export PASSBOOK_DOMAIN=localhost
 | 
				
			||||||
 | 
					          docker-compose pull
 | 
				
			||||||
 | 
					          docker build
 | 
				
			||||||
 | 
					            --no-cache
 | 
				
			||||||
 | 
					            -t beryju/passbook:latest
 | 
				
			||||||
 | 
					            -f Dockerfile .
 | 
				
			||||||
 | 
					          docker-compose up --no-start
 | 
				
			||||||
 | 
					          docker-compose start postgresql redis
 | 
				
			||||||
 | 
					          docker-compose run -u root server bash -c "pip install --no-cache -r requirements-dev.txt && ./manage.py test"
 | 
				
			||||||
 | 
					      - name: Install Helm
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          apt update && apt install -y curl
 | 
				
			||||||
 | 
					          curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
 | 
				
			||||||
 | 
					      - name: Helm package
 | 
				
			||||||
 | 
					        run: |
 | 
				
			||||||
 | 
					          helm dependency update helm/
 | 
				
			||||||
 | 
					          helm package helm/
 | 
				
			||||||
 | 
					          mv passbook-*.tgz passbook-chart.tgz
 | 
				
			||||||
 | 
					      - name: Create Release
 | 
				
			||||||
 | 
					        id: create_release
 | 
				
			||||||
 | 
					        uses: actions/create-release@v1.0.0
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          tag_name: ${{ github.ref }}
 | 
				
			||||||
 | 
					          release_name: Release ${{ github.ref }}
 | 
				
			||||||
 | 
					          draft: false
 | 
				
			||||||
 | 
					          prerelease: false
 | 
				
			||||||
 | 
					      - name: Create Release from Tag
 | 
				
			||||||
 | 
					        id: upload-release-asset
 | 
				
			||||||
 | 
					        uses: actions/upload-release-asset@v1.0.1
 | 
				
			||||||
 | 
					        env:
 | 
				
			||||||
 | 
					          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
 | 
					        with:
 | 
				
			||||||
 | 
					          upload_url: ${{ steps.create_release.outputs.upload_url }}
 | 
				
			||||||
 | 
					          asset_path: ./passbook-chart.tgz
 | 
				
			||||||
 | 
					          asset_name: passbook-chart.tgz
 | 
				
			||||||
 | 
					          asset_content_type: application/gzip
 | 
				
			||||||
		Reference in New Issue
	
	Block a user