Skip to content

Commit 92cabc1

Browse files
committed
ci/cd updated
1 parent 91395cd commit 92cabc1

File tree

1 file changed

+27
-25
lines changed

1 file changed

+27
-25
lines changed

.github/workflows/ci.yml

+27-25
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ on:
99
- main
1010

1111
jobs:
12-
# Build and Push Stage
13-
build_and_push:
14-
name: Build and Push Docker Image to Heroku
12+
# Build Stage
13+
build:
14+
name: Build and Push Docker Image to Docker Hub
1515
runs-on: ubuntu-latest
1616

1717
steps:
@@ -21,25 +21,27 @@ jobs:
2121
- name: Set up Docker Buildx
2222
uses: docker/setup-buildx-action@v2
2323

24-
- name: Heroku Login with API Key
24+
- name: Docker Login
2525
env:
26-
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
26+
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
27+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
2728
run: |
28-
echo $HEROKU_API_KEY
29+
echo $DOCKER_PASSWORD | docker login --username $DOCKER_HUB_USERNAME --password-stdin
2930
30-
- name: Docker Login to Heroku Container Registry
31-
env:
32-
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
33-
HEROKU_EMAIL: ${{ secrets.HEROKU_EMAIL }}
31+
- name: Build and Push Docker image
3432
run: |
35-
echo $HEROKU_API_KEY | docker login --username=_ --password-stdin registry.heroku.com
36-
heroku container:push prod --app ${{ secrets.HEROKU_APP_NAME }}
33+
docker buildx build \
34+
--platform linux/amd64 \
35+
--file development/Dockerfile.prod \
36+
--tag ${{ secrets.DOCKER_HUB_USERNAME }}/myapp:latest \
37+
--push \
38+
.
3739
3840
# Test Stage
3941
test:
4042
name: Test and Lint
4143
runs-on: ubuntu-latest
42-
needs: build_and_push # Wait for build_and_push job to complete
44+
needs: build # Wait for build stage to complete
4345
services:
4446
postgres:
4547
image: postgres:latest
@@ -90,23 +92,23 @@ jobs:
9092
9193
# Release Stage
9294
release:
93-
name: Release Docker Image on Heroku
95+
name: Release Docker Image
9496
runs-on: ubuntu-latest
9597
needs: test # Wait for test job to complete
9698

9799
steps:
98-
- name: Checkout repository
99-
uses: actions/checkout@v3
100+
- name: Docker Login
101+
env:
102+
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
103+
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
104+
run: |
105+
echo $DOCKER_PASSWORD | docker login --username $DOCKER_HUB_USERNAME --password-stdin
100106
101-
- name: Install Heroku CLI
107+
- name: Pull Docker image
102108
run: |
103-
curl https://cli-assets.heroku.com/install.sh | sh
109+
docker pull ${{ secrets.DOCKER_HUB_USERNAME }}/myapp:latest
104110
105-
- name: Docker Login to Heroku Container Registry
106-
env:
107-
HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
108-
HEROKU_EMAIL: ${{ secrets.HEROKU_EMAIL }}
111+
- name: Deploy to Heroku
109112
run: |
110-
echo $HEROKU_API_KEY | docker login --username=_ --password-stdin registry.heroku.com
111-
docker pull registry.heroku.com/${{ secrets.HEROKU_APP_NAME }}/web:latest
112-
heroku container:release web --app ${{ secrets.HEROKU_APP_NAME }}
113+
heroku container:push web --app ${{ secrets.HEROKU_APP_NAME }}
114+
heroku container:release web --app ${{ secrets.HEROKU_APP_NAME }}

0 commit comments

Comments
 (0)