|
1 | | -name: build-and-deploy |
2 | | -on: |
3 | | - push: |
4 | | - branches: [ release ] |
5 | | - |
6 | | -jobs: |
7 | | - deploy: |
8 | | - runs-on: ubuntu-latest |
9 | | - |
10 | | - # Job-level 환경 변수 |
11 | | - env: |
12 | | - IMAGE: ${{ vars.DOCKERHUB_USERNAME }}/weady:latest # jangwoopark/weady:latest |
13 | | - |
14 | | - steps: |
15 | | - # 소스 체크아웃 |
16 | | - - uses: actions/checkout@v4 |
17 | | - with: |
18 | | - submodules: 'recursive' |
19 | | - token: ${{ secrets.GH_SUBMODULE_TOKEN }} |
20 | | - |
21 | | - # Docker Hub 로그인 |
22 | | - - name: Login to Docker Hub |
23 | | - uses: docker/login-action@v3 |
24 | | - with: |
25 | | - username: ${{ vars.DOCKERHUB_USERNAME }} |
26 | | - password: ${{ secrets.DOCKERHUB_TOKEN }} |
27 | | - |
28 | | - # 이미지 빌드 & 푸시 |
29 | | - - uses: docker/setup-buildx-action@v3 |
30 | | - - uses: docker/build-push-action@v6 |
31 | | - with: |
32 | | - context: . |
33 | | - push: true |
34 | | - tags: ${{ env.IMAGE }} |
35 | | - |
36 | | - # EC2 배포 |
37 | | - - name: Deploy to EC2 via SSH |
38 | | - uses: appleboy/ssh-action@v1.0.0 |
39 | | - with: |
40 | | - host: ${{ secrets.EC2_HOST }} |
41 | | - username: ${{ secrets.EC2_USER }} |
42 | | - key: ${{ secrets.SSH_PRIVATE_KEY }} |
43 | | - script: | |
44 | | - # Docker/Compose 설치 (멱등) |
45 | | - if ! command -v docker >/dev/null 2>&1; then |
46 | | - sudo yum -y install docker |
47 | | - sudo systemctl enable --now docker |
48 | | - sudo usermod -aG docker ec2-user |
49 | | - fi |
50 | | - if ! docker compose version >/dev/null 2>&1; then |
51 | | - sudo mkdir -p /usr/local/lib/docker/cli-plugins |
52 | | - sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" \ |
53 | | - -o /usr/local/lib/docker/cli-plugins/docker-compose |
54 | | - sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose |
55 | | - fi |
56 | | - |
57 | | - # Private 레포 pull 전 로그인 |
58 | | - echo "${{ secrets.DOCKERHUB_TOKEN }}" | \ |
59 | | - docker login -u "${{ vars.DOCKERHUB_USERNAME }}" --password-stdin |
60 | | - |
61 | | - docker pull ${{ env.IMAGE }} |
62 | | - docker compose -f ~/docker-compose.yml up -d --pull always --remove-orphans |
63 | | - docker image prune -af |
| 1 | +#name: build-and-deploy |
| 2 | +#on: |
| 3 | +# push: |
| 4 | +# branches: [ release ] |
| 5 | +# |
| 6 | +#jobs: |
| 7 | +# deploy: |
| 8 | +# runs-on: ubuntu-latest |
| 9 | +# |
| 10 | +# # Job-level 환경 변수 |
| 11 | +# env: |
| 12 | +# IMAGE: ${{ vars.DOCKERHUB_USERNAME }}/weady:latest # jangwoopark/weady:latest |
| 13 | +# |
| 14 | +# steps: |
| 15 | +# # 소스 체크아웃 |
| 16 | +# - uses: actions/checkout@v4 |
| 17 | +# with: |
| 18 | +# submodules: 'recursive' |
| 19 | +# token: ${{ secrets.GH_SUBMODULE_TOKEN }} |
| 20 | +# |
| 21 | +# # Docker Hub 로그인 |
| 22 | +# - name: Login to Docker Hub |
| 23 | +# uses: docker/login-action@v3 |
| 24 | +# with: |
| 25 | +# username: ${{ vars.DOCKERHUB_USERNAME }} |
| 26 | +# password: ${{ secrets.DOCKERHUB_TOKEN }} |
| 27 | +# |
| 28 | +# # 이미지 빌드 & 푸시 |
| 29 | +# - uses: docker/setup-buildx-action@v3 |
| 30 | +# - uses: docker/build-push-action@v6 |
| 31 | +# with: |
| 32 | +# context: . |
| 33 | +# push: true |
| 34 | +# tags: ${{ env.IMAGE }} |
| 35 | +# |
| 36 | +# # EC2 배포 |
| 37 | +# - name: Deploy to EC2 via SSH |
| 38 | +# uses: appleboy/ssh-action@v1.0.0 |
| 39 | +# with: |
| 40 | +# host: ${{ secrets.EC2_HOST }} |
| 41 | +# username: ${{ secrets.EC2_USER }} |
| 42 | +# key: ${{ secrets.SSH_PRIVATE_KEY }} |
| 43 | +# script: | |
| 44 | +# # Docker/Compose 설치 (멱등) |
| 45 | +# if ! command -v docker >/dev/null 2>&1; then |
| 46 | +# sudo yum -y install docker |
| 47 | +# sudo systemctl enable --now docker |
| 48 | +# sudo usermod -aG docker ec2-user |
| 49 | +# fi |
| 50 | +# if ! docker compose version >/dev/null 2>&1; then |
| 51 | +# sudo mkdir -p /usr/local/lib/docker/cli-plugins |
| 52 | +# sudo curl -SL "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" \ |
| 53 | +# -o /usr/local/lib/docker/cli-plugins/docker-compose |
| 54 | +# sudo chmod +x /usr/local/lib/docker/cli-plugins/docker-compose |
| 55 | +# fi |
| 56 | +# |
| 57 | +# # Private 레포 pull 전 로그인 |
| 58 | +# echo "${{ secrets.DOCKERHUB_TOKEN }}" | \ |
| 59 | +# docker login -u "${{ vars.DOCKERHUB_USERNAME }}" --password-stdin |
| 60 | +# |
| 61 | +# docker pull ${{ env.IMAGE }} |
| 62 | +# docker compose -f ~/docker-compose.yml up -d --pull always --remove-orphans |
| 63 | +# docker image prune -af |
0 commit comments