-
Notifications
You must be signed in to change notification settings - Fork 0
39 lines (34 loc) · 2.35 KB
/
Copy pathdeploy.yml
File metadata and controls
39 lines (34 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
name: deploy-api
on:
push:
branches: ["main"]
env:
REGISTRY: ghcr.io
BACKEND_IMAGE_NAME: promoshockapi:$GITHUB_SHA
CLIENT_IMAGE_NAME: promoshockclient:$GITHUB_SHA
NEXT_PUBLIC_BSC_RPC_URL: https://go.getblock.io/08f6675f7e1642f5ac69505ff84235f3
NEXT_PUBLIC_BSC_CHAIN_ID: "97"
NEXT_PUBLIC_IS_TESTNET: "true"
jobs:
publish:
name: build and upload image
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: install ssh keys
run: |
install -m 600 -D /dev/null ~/.ssh/id_ed25519
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
ssh-keyscan -H ${{ secrets.SSH_HOST }} > ~/.ssh/known_hosts
- name: Build and Publish API
run: |
docker build backend --tag ${{ env.BACKEND_IMAGE_NAME }}
docker save ${{ env.BACKEND_IMAGE_NAME }} | ssh -C ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker load && exit"
- name: Build and Publish client
run: |
docker build promo-shock --tag ${{ env.CLIENT_IMAGE_NAME }} --build-arg NEXT_PUBLIC_API_URL=${{ secrets.NEXT_PUBLIC_API_URL }} --build-arg NEXT_PUBLIC_WC_PROJECT_ID=${{secrets.NEXT_PUBLIC_WC_PROJECT_ID}} --build-arg NEXT_PUBLIC_IS_TESTNET=${{env.NEXT_PUBLIC_IS_TESTNET}} --build-arg NEXT_PUBLIC_BSC_CHAIN_ID=${{env.NEXT_PUBLIC_BSC_CHAIN_ID}} --build-arg NEXT_PUBLIC_BSC_RPC_URL=${{env.NEXT_PUBLIC_BSC_RPC_URL}} --build-arg NEXT_PUBLIC_BSC_TICKET_FACTORY_ADDRESS=${{secrets.NEXT_PUBLIC_BSC_TICKET_FACTORY_ADDRESS}} --build-arg NEXT_PUBLIC_BSC_PROMO_FACTORY_ADDRESS=${{secrets.NEXT_PUBLIC_BSC_PROMO_FACTORY_ADDRESS}} --build-arg NEXT_PUBLIC_BSC_PAYMENT_TOKEN_ADDRESS=${{secrets.NEXT_PUBLIC_BSC_PAYMENT_TOKEN_ADDRESS}} --build-arg NEXT_PUBLIC_BSC_PROMO_TOKEN_ADDRESS=${{secrets.NEXT_PUBLIC_BSC_PROMO_TOKEN_ADDRESS}} --build-arg NEXT_PUBLIC_METADATA_EXTERNAL_LINK=${{secrets.NEXT_PUBLIC_METADATA_EXTERNAL_LINK}} --build-arg PINATA_API_JWT=${{secrets.PINATA_API_JWT}} --build-arg PINATA_API_KEY=${{secrets.PINATA_API_KEY}} --build-arg PINATA_API_SECRET_KEY=${{secrets.PINATA_API_SECRET_KEY}}
docker save ${{ env.CLIENT_IMAGE_NAME }} | ssh -C ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "docker load && exit"
- name: Restart server
run: ssh -C ${{secrets.SSH_USER}}@${{secrets.SSH_HOST}} "cd ${{secrets.WORKDIR}} && GIT_COMMIT=$GITHUB_SHA docker-compose up -d && exit"
- name: cleanup
run: rm -rf ~/.ssh