actions: automatically create release when version/* tag is created, run tests before creating release

This commit is contained in:
Jens Langhammer 2020-01-02 13:49:24 +01:00
parent 575739d07c
commit b7b3abc462
3 changed files with 62 additions and 23 deletions

View file

@ -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

View file

@ -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
View 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