@@ -64,52 +64,57 @@ jobs:
6464 if : steps.composer-cache.outputs.cache-hit != 'true'
6565 run : composer install --no-progress --prefer-dist --optimize-autoloader
6666 env :
67- DATABASE_URL : mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony
67+ DATABASE_URL : mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony?Version=9.3
6868 - name : Run Migration
6969 run : |
7070 composer require --dev symfony/orm-pack
7171 php bin/console doctrine:schema:update --complete --force || echo "No migrations found or schema update failed"
7272 php bin/console doctrine:migrations:migrate || echo "No migrations found or migration failed"
7373 env :
74- DATABASE_URL : mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony
74+ DATABASE_URL : mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony?Version=9.3
7575 - name : Install PHPUnit
7676 run : composer require --dev phpunit/phpunit && vendor/bin/phpunit --coverage-text
77- env :
78- DATABASE_URL : mysql://root:symfony@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/symfony
7977 deploy :
8078 name : Deploy image
8179 runs-on : ubuntu-latest
8280 needs : validate
8381 env :
8482 DOCKER_BRANCH : ${{ github.ref_name }}
83+ DOMAIN_URL : ${{ secrets.DOMAIN_URL }}
84+ DOCKER_REGISTRY : ${{ secrets.DOCKER_REGISTRY }}
8585 steps :
8686 - uses : actions/checkout@v4
8787 - name : Set environment variables
8888 run : |
89- echo "DOCKER_NETWORK_NAME=api-${{ github.ref_name } }" >> $GITHUB_ENV
90- if [[ "${{ github.ref_name } }" == "alpha" ]]; then
89+ echo "DOCKER_NETWORK_NAME=api-${DOCKER_BRANCH }" >> $GITHUB_ENV
90+ if [[ "${DOCKER_BRANCH }" == "alpha" ]]; then
9191 echo "APP_ENV=dev" >> $GITHUB_ENV
92- echo "DATABASE_URL=mysql://root:symfony@db :3306/symfony" >> $GITHUB_ENV
92+ echo "DATABASE_URL=mysql://root:symfony@db1 :3306/symfony" >> $GITHUB_ENV
9393 else
9494 echo "APP_ENV=prod" >> $GITHUB_ENV
95- echo "DATABASE_URL=mysql://root:symfony@db :3306/symfony" >> $GITHUB_ENV
95+ echo "DATABASE_URL=mysql://root:symfony@db2 :3306/symfony" >> $GITHUB_ENV
9696 fi
9797 - name : Login to registry
9898 uses : docker/login-action@v3
9999 with :
100- registry : ${{ secrets. DOCKER_REGISTRY } }
100+ registry : ${DOCKER_REGISTRY}
101101 username : ${{ secrets.DOCKER_LOGIN }}
102102 password : ${{ secrets.DOCKER_PASSWD }}
103103 - name : Build and push Docker image
104104 uses : docker/build-push-action@v5
105105 with :
106106 context : .
107107 push : true
108- tags : ${{ secrets. DOCKER_REGISTRY }} /api-php:${{ github.ref_name } }
108+ tags : ${DOCKER_REGISTRY} /api-php:${DOCKER_BRANCH }
109109 build-args : |
110110 APP_ENV=${{ env.APP_ENV }}
111111 DATABASE_URL=${{ env.DATABASE_URL }}
112112 - name : Configure SSH
113+ env :
114+ SSH_USER : ${{ secrets.SSH_USER }}
115+ SSH_KEY : ${{ secrets.SSH_KEY }}
116+ SSH_HOST : ${{ secrets.SSH_HOST }}
117+ SSH_PORT : ${{ secrets.SSH_PORT }}
113118 run : |
114119 mkdir -p ~/.ssh/
115120 echo "$SSH_KEY" > ~/.ssh/staging.key
@@ -122,27 +127,23 @@ jobs:
122127 IdentityFile ~/.ssh/staging.key
123128 StrictHostKeyChecking no
124129 END
125- env :
126- SSH_USER : ${{ secrets.SSH_USER }}
127- SSH_KEY : ${{ secrets.SSH_KEY }}
128- SSH_HOST : ${{ secrets.SSH_HOST }}
129- SSH_PORT : ${{ secrets.SSH_PORT }}
130- DOMAIN_URL : ${{ secrets.DOMAIN_URL }}
131130 - name : Update envs & run migrations
131+ # with:
132+ # SYMFONY_ENV: ${{ secrets.SYMFONY_ENV }}
132133 run : |
133- if [[ "$DOCKER_BRANCH" == "master" ]]; then
134- HOSTNAME="api.${{ secrets. DOMAIN_URL }} "
134+ if [[ "${ DOCKER_BRANCH} " == "master" ]]; then
135+ HOSTNAME="api.$DOMAIN_URL"
135136 APP_ENV="prod"
136- elif [[ "$DOCKER_BRANCH" == "preprod" ]]; then
137- HOSTNAME="api.$DOCKER_BRANCH.${{ secrets. DOMAIN_URL }} "
137+ elif [[ "${ DOCKER_BRANCH} " == "preprod" ]]; then
138+ HOSTNAME="api.${ DOCKER_BRANCH}.$ DOMAIN_URL"
138139 APP_ENV="prod"
139140 else
140- HOSTNAME="api.$DOCKER_BRANCH.${{ secrets. DOMAIN_URL }} "
141+ HOSTNAME="api.${ DOCKER_BRANCH}.$ DOMAIN_URL"
141142 APP_ENV="dev"
142143 fi
143144 ssh staging "cd /var/docker/api/${DOCKER_BRANCH} && \
144- export DOCKER_BRANCH=${{ github.ref_name } } && \
145- export DOCKER_REGISTRY=${{ secrets. DOCKER_REGISTRY } } && \
145+ export DOCKER_BRANCH=${DOCKER_BRANCH } && \
146+ export DOCKER_REGISTRY=${DOCKER_REGISTRY} && \
146147 echo 'APP_ENV=${APP_ENV}' > .env && \
147148 echo 'DATABASE_URL=${DATABASE_URL}' >> .env && \
148149 echo 'DOCKER_NETWORK_NAME=api-${DOCKER_BRANCH}' >> .env && \
@@ -153,7 +154,7 @@ jobs:
153154 echo 'MYSQL_DATABASE=symfony' >> .env && \
154155 git pull origin ${DOCKER_BRANCH} && \
155156 docker compose --file docker-compose-branch.yml pull && \
156- docker login -u ${{ secrets.DOCKER_LOGIN }} -p ${{ secrets.DOCKER_PASSWD }} ${{ secrets. DOCKER_REGISTRY } } && \
157- docker compose --project-name ${{ github.ref_name } }-api_php --file docker-compose-branch.yml up -d && \
158- until docker exec ${{ github.ref_name } }-api_php-sf true 2>/dev/null; do sleep 5; done && \
159- docker compose --project-name ${{ github.ref_name } }-api_php --file docker-compose-branch.yml exec symfony php bin/console doctrine:migrations:migrate --no-interaction"
157+ docker login -u ${{ secrets.DOCKER_LOGIN }} -p ${{ secrets.DOCKER_PASSWD }} ${DOCKER_REGISTRY} && \
158+ docker compose --project-name ${DOCKER_BRANCH }-api_php --file docker-compose-branch.yml up -d && \
159+ until docker exec ${DOCKER_BRANCH }-api_php-sf true 2>/dev/null; do sleep 5; done && \
160+ docker compose --project-name ${DOCKER_BRANCH }-api_php --file docker-compose-branch.yml exec symfony php bin/console doctrine:migrations:migrate --no-interaction"
0 commit comments