Compare commits

...

1 Commits

Author SHA1 Message Date
Carlos Quintana 220997ce75
Try to generate release notes 2022-05-12 10:58:44 +02:00
1 changed files with 148 additions and 136 deletions

View File

@ -6,142 +6,154 @@ on:
types: [ 'opened' ]
jobs:
test:
justfortest:
if: startsWith(github.ref, 'refs/tags/')
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:
- name: Check out repository
uses: actions/checkout@v2
- 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
- name: "Build Changelog"
id: build_changelog
uses: mikepenz/release-changelog-builder-action@v3
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 }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
MSG="${{ steps.github_release.outputs.changelog }}"
echo $MSG
# test:
# 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:
# - name: Check out repository
# uses: actions/checkout@v2
#
# - 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:
# 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 }}