diff --git a/.circleci/config.yml b/.circleci/config.yml index b73c233..feda1c8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -8,14 +8,14 @@ jobs: - restore_cache: key: deps1-{{ .Branch }}-{{ checksum "requirements/dev.txt" }} - run: - name: Install dependencies in a python venv + name: Install dependencies command: | python3 -m venv venv . venv/bin/activate - pip install -r requirements/dev.txt + pip install -r requirements/dev.txt - save_cache: key: deps1-{{ .Branch }}-{{ checksum "requirements/dev.txt" }} - paths: + paths: - "venv" test: docker: @@ -35,17 +35,17 @@ jobs: - restore_cache: key: deps1-{{ .Branch }}-{{ checksum "requirements/dev.txt" }} - run: - name: Wait for postgres + name: Wait command: dockerize -wait tcp://localhost:5432 -timeout 1m - - run: - name: running test + - run: + name: Run tests command: | . venv/bin/activate flask db upgrade flask test build_docker: environment: - IMAGE_NAME: sgttabouret/devops-final-back + IMAGE_NAME: skinkan/TP_FINAL_DEVOPS docker: - image: circleci/buildpack-deps:stretch steps: @@ -59,7 +59,7 @@ jobs: - ./image.tar push_docker: environment: - IMAGE_NAME: sgttabouret/devops-final-back + IMAGE_NAME: skinkan/TP_FINAL_DEVOPS docker: - image: circleci/buildpack-deps:stretch steps: @@ -70,7 +70,7 @@ jobs: - run: name: Login and push to DockerHub command: | - echo "$DOCKERHUB_PASS" | docker login --username skinkan --password-159753 + echo "$DOCKERHUB_PASS" | docker login --username skinkan --password-Admin159753 docker tag $IMAGE_NAME:app $IMAGE_NAME:$CIRCLE_BUILD_NUM docker tag $IMAGE_NAME:app $IMAGE_NAME:latest docker push $IMAGE_NAME:$CIRCLE_BUILD_NUM @@ -80,7 +80,7 @@ jobs: - image: buildpack-deps:trusty steps: - checkout - - run: + - run: name: Heroku deploy command: | git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git main @@ -88,12 +88,12 @@ workflows: version: 2 build-test: jobs: - - build - # - test: - # context: - # - back_final - # requires: - # - build + - build + - test: + context: + - back_final + requires: + - build - build_docker: requires: # - test @@ -118,4 +118,4 @@ workflows: filters: branches: only: - - main \ No newline at end of file + - main diff --git a/migrations/env.py b/migrations/env.py index 79b8174..9452179 100644 --- a/migrations/env.py +++ b/migrations/env.py @@ -23,8 +23,8 @@ logger = logging.getLogger('alembic.env') # target_metadata = mymodel.Base.metadata from flask import current_app config.set_main_option( - 'sqlalchemy.url', current_app.config.get( - 'SQLALCHEMY_DATABASE_URI').replace('%', '%%')) + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.engine.url).replace('%', '%%')) target_metadata = current_app.extensions['migrate'].db.metadata # other values from the config, defined by the needs of env.py, diff --git a/migrations/versions/2267f00a4594_.py b/migrations/versions/2267f00a4594_.py deleted file mode 100644 index 3b7f481..0000000 --- a/migrations/versions/2267f00a4594_.py +++ /dev/null @@ -1,101 +0,0 @@ -"""empty message - -Revision ID: 2267f00a4594 -Revises: -Create Date: 2020-01-04 15:20:33.461410 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '2267f00a4594' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('tags', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('tagname', sa.String(length=100), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('users', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('username', sa.String(length=80), nullable=False), - sa.Column('email', sa.String(length=100), nullable=False), - sa.Column('password', sa.Binary(), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=False), - sa.Column('updated_at', sa.DateTime(), nullable=False), - sa.Column('bio', sa.String(length=300), nullable=True), - sa.Column('image', sa.String(length=120), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('email'), - sa.UniqueConstraint('username') - ) - op.create_table('userprofile', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('user_id') - ) - op.create_table('article', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('slug', sa.Text(), nullable=True), - sa.Column('title', sa.String(length=100), nullable=False), - sa.Column('description', sa.Text(), nullable=False), - sa.Column('body', sa.Text(), nullable=True), - sa.Column('createdAt', sa.DateTime(), nullable=False), - sa.Column('updatedAt', sa.DateTime(), nullable=False), - sa.Column('author_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['author_id'], ['userprofile.id'], ), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('slug') - ) - op.create_table('followers_assoc', - sa.Column('follower', sa.Integer(), nullable=True), - sa.Column('followed_by', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['followed_by'], ['userprofile.user_id'], ), - sa.ForeignKeyConstraint(['follower'], ['userprofile.user_id'], ) - ) - op.create_table('comment', - sa.Column('id', sa.Integer(), nullable=False), - sa.Column('body', sa.Text(), nullable=True), - sa.Column('createdAt', sa.DateTime(), nullable=False), - sa.Column('updatedAt', sa.DateTime(), nullable=False), - sa.Column('author_id', sa.Integer(), nullable=False), - sa.Column('article_id', sa.Integer(), nullable=False), - sa.ForeignKeyConstraint(['article_id'], ['article.id'], ), - sa.ForeignKeyConstraint(['author_id'], ['userprofile.id'], ), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('favoritor_assoc', - sa.Column('favoriter', sa.Integer(), nullable=True), - sa.Column('favorited_article', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['favorited_article'], ['article.id'], ), - sa.ForeignKeyConstraint(['favoriter'], ['userprofile.id'], ) - ) - op.create_table('tag_assoc', - sa.Column('tag', sa.Integer(), nullable=True), - sa.Column('article', sa.Integer(), nullable=True), - sa.ForeignKeyConstraint(['article'], ['article.id'], ), - sa.ForeignKeyConstraint(['tag'], ['tags.id'], ) - ) - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.drop_table('tag_assoc') - op.drop_table('favoritor_assoc') - op.drop_table('comment') - op.drop_table('followers_assoc') - op.drop_table('article') - op.drop_table('userprofile') - op.drop_table('users') - op.drop_table('tags') - # ### end Alembic commands ###