From 220997ce758b1083639d68999f4f057bb4f5e657 Mon Sep 17 00:00:00 2001 From: Carlos Quintana Date: Thu, 12 May 2022 10:51:57 +0200 Subject: [PATCH] Try to generate release notes --- .github/workflows/main.yml | 284 +++++++++++++++++++------------------ 1 file changed, 148 insertions(+), 136 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c0a6beb7..b9f0b469 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -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 }}