Skip to content

Commit d756f93

Browse files
authored
Merge pull request #212 from camphor-/githubaction-prod
Prod環境、GitHub Actionでbuild と deploy
2 parents 186e292 + 104a8aa commit d756f93

2 files changed

Lines changed: 68 additions & 18 deletions

File tree

.github/workflows/deploy-prod.yaml

Lines changed: 68 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,78 @@ on:
66
- v[0-9]+.[0-9]+.[0-9]+
77
paths-ignore:
88
- 'docs/**'
9-
9+
1010
jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v2
15-
- name: Publish Docker
16-
uses: elgohr/Publish-Docker-Github-Action@2.12
14+
- name: Set up Docker Buildx
15+
uses: docker/setup-buildx-action@v1
16+
- name: Login to Docker Registry
17+
uses: docker/login-action@v1
18+
with:
19+
registry: registry.camph.net
20+
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
21+
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
22+
- name: Check out
23+
uses: actions/checkout@v2
24+
- name: Build and push
25+
uses: docker/build-push-action@v2
26+
with:
27+
push: true
28+
tags: registry.camph.net/relaym-server-prod:latest
29+
context: .
30+
file: ./docker/Dockerfile
31+
- name: Notify to Slack
32+
uses: craftech-io/slack-action@v1
33+
with:
34+
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}
35+
if: failure()
36+
deploy:
37+
name: deploy
38+
runs-on: ubuntu-latest
39+
needs: build
40+
steps:
41+
- name: Install SSH key
42+
uses: shimataro/ssh-key-action@v2
43+
with:
44+
key: ${{ secrets.KONOE_SSH_KEY }}
45+
name: id_rsa
46+
known_hosts: ${{ secrets.KONOE_KNOWN_HOSTS }}
47+
- name: Setup docker context
48+
run: |
49+
docker context create --default-stack-orchestrator=swarm --docker "host=ssh://${{ secrets.KONOE_SSH_USERNAME }}@${{ secrets.KONOE_SSH_HOST }}:${{ secrets.KONOE_SSH_PORT }}" konoe
50+
docker context use konoe
51+
- name: Login to Docker Registry
52+
uses: docker/login-action@v1
1753
with:
18-
name: relaym-server-prod
19-
username: ${{ secrets.DOCKER_USERNAME }}
20-
password: ${{ secrets.DOCKER_PASSWORD }}
2154
registry: registry.camph.net
22-
dockerfile: docker/Dockerfile
23-
tags: "latest"
24-
- name: Notify to Rundeck
25-
uses: wei/curl@v1.1.1
55+
username: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
56+
password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
57+
- name: Check out
58+
uses: actions/checkout@v2
59+
- name: deploy relaym-server-prod
60+
run: |
61+
docker pull registry.camph.net/relaym-server-prod:latest
62+
docker-compose --context konoe -f docker/docker-compose.deps.base.yml -f docker/docker-compose.deps.prod.yml -p prod up -d
63+
docker-compose --context konoe -f docker/docker-compose.base.yml -f docker/docker-compose.prod.yml -p prod stop
64+
docker-compose --context konoe -f docker/docker-compose.base.yml -f docker/docker-compose.prod.yml -p prod up -d
65+
env:
66+
ENV: ${{ secrets.PROD_ENV }}
67+
DB_DATABASE: ${{ secrets.PROD_DB_DATABASE }}
68+
DB_USER: ${{ secrets.PROD_DB_USER }}
69+
DB_PASSWORD: ${{ secrets.PROD_DB_PASSWORD }}
70+
DB_ROOT_PASSWORD: ${{ secrets.PROD_DB_ROOT_PASSWORD }}
71+
DB_HOST: ${{ secrets.PROD_DB_HOST }}
72+
DB_PORT: ${{ secrets.PROD_DB_PORT }}
73+
SPOTIFY_REDIRECT_URL: ${{ secrets.PROD_SPOTIFY_REDIRECT_URL }}
74+
PORT: ${{ secrets.PROD_PORT }}
75+
SPOTIFY_CLIENT_ID: ${{ secrets.PROD_SPOTIFY_CLIENT_ID }}
76+
SPOTIFY_CLIENT_SECRET: ${{ secrets.PROD_SPOTIFY_CLIENT_SECRET }}
77+
CORS_ALLOW_ORIGIN: ${{ secrets.PROD_CORS_ALLOW_ORIGIN }}
78+
FRONTEND_URL: ${{ secrets.PROD_FRONTEND_URL }}
79+
- name: Notify to Slack
80+
uses: craftech-io/slack-action@v1
2681
with:
27-
args: https://${{ secrets.RUNDECK_DOMAIN }}/api/1/job/${{ secrets.RUNDECK_JOB_ID_PROD }}/run?authtoken=${{ secrets.RUNDECK_TOKEN }} -X POST
82+
slack_webhook_url: ${{ secrets.SLACK_WEBHOOK_URL }}
83+
if: always()

Makefile

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,3 @@ run-db-local:
3636
generate:
3737
go generate ./...
3838

39-
.PHONY: deploy-prod
40-
deploy-prod:
41-
docker pull registry.camph.net/relaym-server-prod:latest
42-
$(ENV_PROD) docker-compose -f docker/docker-compose.deps.base.yml -f docker/docker-compose.deps.prod.yml -p prod up -d
43-
$(ENV_PROD) ENV_FILE=$(ENV_PROD_FILE) docker-compose -f docker/docker-compose.base.yml -f docker/docker-compose.prod.yml -p prod stop
44-
$(ENV_PROD) ENV_FILE=$(ENV_PROD_FILE) docker-compose -f docker/docker-compose.base.yml -f docker/docker-compose.prod.yml -p prod up -d

0 commit comments

Comments
 (0)