Try to generate release notes

This commit is contained in:
Carlos Quintana 2022-05-12 10:51:57 +02:00
parent b17af67614
commit 220997ce75
No known key found for this signature in database
GPG Key ID: 15E73DCC410679F8
1 changed files with 148 additions and 136 deletions

View File

@ -6,142 +6,154 @@ on:
types: [ 'opened' ] types: [ 'opened' ]
jobs: jobs:
test: justfortest:
if: startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, "3.10"]
# service containers to run with `postgres-job`
services:
# label used to access the service container
postgres:
# Docker Hub image
image: postgres:13
# service environment variables
# `POSTGRES_HOST` is `postgres`
env:
# optional (defaults to `postgres`)
POSTGRES_DB: test
# required
POSTGRES_PASSWORD: test
# optional (defaults to `5432`)
POSTGRES_PORT: 5432
# optional (defaults to `postgres`)
POSTGRES_USER: test
ports:
- 15432:5432
# set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps: steps:
- name: Check out repository - name: "Build Changelog"
uses: actions/checkout@v2 id: build_changelog
uses: mikepenz/release-changelog-builder-action@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Run caching
id: cached-poetry-dependencies
uses: actions/cache@v2
with:
path: .venv
key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
- name: Install OS dependencies
if: ${{ matrix.python-version }} == '3.10'
run: |
sudo apt update
sudo apt install -y libre2-dev libpq-dev
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
- name: Install library
run: poetry install --no-interaction
- name: Check formatting & linting
run: |
poetry run black --check .
poetry run flake8
- name: Run db migration
run: |
CONFIG=tests/test.env poetry run alembic upgrade head
- name: Test with pytest
run: |
poetry run pytest
env: env:
GITHUB_ACTIONS_TEST: true GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- name: Archive code coverage results MSG="${{ steps.github_release.outputs.changelog }}"
uses: actions/upload-artifact@v2 echo $MSG
with: # test:
name: code-coverage-report # runs-on: ubuntu-latest
path: htmlcov # strategy:
# max-parallel: 4
build: # matrix:
runs-on: ubuntu-latest # python-version: [3.7, "3.10"]
needs: ['test'] #
if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v')) # # service containers to run with `postgres-job`
# services:
steps: # # label used to access the service container
- name: Docker meta # postgres:
id: meta # # Docker Hub image
uses: docker/metadata-action@v4 # image: postgres:13
with: # # service environment variables
images: simplelogin/app-ci # # `POSTGRES_HOST` is `postgres`
# env:
- name: Login to Docker Hub # # optional (defaults to `postgres`)
uses: docker/login-action@v2 # POSTGRES_DB: test
with: # # required
username: ${{ secrets.DOCKER_USERNAME }} # POSTGRES_PASSWORD: test
password: ${{ secrets.DOCKER_PASSWORD }} # # optional (defaults to `5432`)
# POSTGRES_PORT: 5432
- name: Build image and publish to Docker Registry # # optional (defaults to `postgres`)
uses: docker/build-push-action@v3 # POSTGRES_USER: test
with: # ports:
push: true # - 15432:5432
tags: ${{ steps.meta.outputs.tags }} # # set health checks to wait until postgres has started
# options: >-
# We need to checkout the repository in order for the "Create Sentry release" to work # --health-cmd pg_isready
- name: Checkout repository # --health-interval 10s
uses: actions/checkout@v2 # --health-timeout 5s
# --health-retries 5
- name: Create Sentry release #
uses: getsentry/action-release@v1 # steps:
env: # - name: Check out repository
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} # uses: actions/checkout@v2
SENTRY_ORG: ${{ secrets.SENTRY_ORG }} #
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} # - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v2
- name: Send Telegram message # with:
uses: appleboy/telegram-action@master # python-version: ${{ matrix.python-version }}
with: #
to: ${{ secrets.TELEGRAM_TO }} # - name: Install poetry
token: ${{ secrets.TELEGRAM_TOKEN }} # uses: snok/install-poetry@v1
args: Docker image pushed on ${{ github.ref }} # with:
# virtualenvs-create: true
- name: Post notification to Slack # virtualenvs-in-project: true
uses: slackapi/slack-github-action@v1.19.0 # installer-parallel: true
with: #
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} # - name: Run caching
slack-message: "New tag generated: ${{github.ref}}\nBuild result: ${{ job.status }}" # id: cached-poetry-dependencies
env: # uses: actions/cache@v2
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} # with:
# path: .venv
# key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}
#
# - name: Install OS dependencies
# if: ${{ matrix.python-version }} == '3.10'
# run: |
# sudo apt update
# sudo apt install -y libre2-dev libpq-dev
#
# - name: Install dependencies
# if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
# run: poetry install --no-interaction --no-root
#
# - name: Install library
# run: poetry install --no-interaction
#
# - name: Check formatting & linting
# run: |
# poetry run black --check .
# poetry run flake8
#
# - name: Run db migration
# run: |
# CONFIG=tests/test.env poetry run alembic upgrade head
#
# - name: Test with pytest
# run: |
# poetry run pytest
# env:
# GITHUB_ACTIONS_TEST: true
#
# - name: Archive code coverage results
# uses: actions/upload-artifact@v2
# with:
# name: code-coverage-report
# path: htmlcov
#
# build:
# runs-on: ubuntu-latest
# needs: ['test']
# if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/v'))
#
# steps:
# - name: Docker meta
# id: meta
# uses: docker/metadata-action@v4
# with:
# images: simplelogin/app-ci
#
# - name: Login to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKER_USERNAME }}
# password: ${{ secrets.DOCKER_PASSWORD }}
#
# - name: Build image and publish to Docker Registry
# uses: docker/build-push-action@v3
# with:
# push: true
# tags: ${{ steps.meta.outputs.tags }}
#
# # We need to checkout the repository in order for the "Create Sentry release" to work
# - name: Checkout repository
# uses: actions/checkout@v2
#
# - name: Create Sentry release
# uses: getsentry/action-release@v1
# env:
# SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
# SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
# SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
#
# - name: Send Telegram message
# uses: appleboy/telegram-action@master
# with:
# to: ${{ secrets.TELEGRAM_TO }}
# token: ${{ secrets.TELEGRAM_TOKEN }}
# args: Docker image pushed on ${{ github.ref }}
#
# - name: Post notification to Slack
# uses: slackapi/slack-github-action@v1.19.0
# with:
# channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
# slack-message: "New tag generated: ${{github.ref}}\nBuild result: ${{ job.status }}"
# env:
# SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}