@@ -64,83 +64,53 @@ jobs:
64
64
docker run -i --env-file typesense-scraper-updated.env -e "CONFIG=$(cat typesense-scraper-config.json | jq -r tostring)" typesense/docsearch-scraper
65
65
curl 'http://172.17.0.2:8108/keys' -X POST -H "X-TYPESENSE-API-KEY: ${TYPESENSE_API_KEY}" -H 'Content-Type: application/json' -d '{"value": "N4N8bF0XwyvzwCGwm3CKB0QcnwyWtygo","description": "Search only","actions": ["documents:search"],"collections":["*"]}'
66
66
67
- - name : repository name fix
68
- run : echo "image_repository_name=docs-search" >> $GITHUB_ENV
69
-
70
- - name : Configure AWS credentials
71
- uses : aws-actions/configure-aws-credentials@v1
72
- with :
73
- aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
74
- aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
75
- aws-region : ${{ secrets.AWS_REGION }}
76
-
77
- - name : Login to Amazon ECR
78
- id : login_ecr
79
- uses : aws-actions/amazon-ecr-login@v1
80
-
81
- - name : Build and push to ECR
82
- id : push_image_to_ecr
83
-
84
- with :
85
- file : ./typesense-data/Dockerfile
86
- context : ./typesense-data/
87
- push : true
88
- tags : ${{ steps.login_ecr.outputs.registry }}/${{ env.image_repository_name }}:latest
89
-
90
- deploy_ecs :
91
- needs : build
92
- runs-on : ubuntu-20.04
93
- steps :
94
- - name : checkout
95
- uses : actions/checkout@v2
96
-
97
- - name : Configure AWS credentials
98
- uses : aws-actions/configure-aws-credentials@v1
99
- with :
100
- aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
101
- aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
102
- aws-region : ${{ secrets.AWS_REGION }}
103
-
104
- - name : Login to Amazon ECR
105
- id : login_ecr
106
- uses : aws-actions/amazon-ecr-login@v1
107
-
108
- - name : Repository name fix and env values setup
67
+ - name : repository name fix and env
109
68
run : |
69
+ echo "letsencrypt_email=${{ secrets.LETSENCRYPT_EMAIL }}" >> $GITHUB_ENV
70
+ echo "TAG_NAME=latest" >> $GITHUB_ENV
71
+ if [ "${{ github.event.release.tag_name }}" != "" ]; then
72
+ echo "TAG_NAME=${{ github.event.release.tag_name }}" >> $GITHUB_ENV
73
+ fi;
74
+ if [ "${{ github.event.inputs.version }}" != "" ]; then
75
+ echo "TAG_NAME=${{ github.event.inputs.version }}" >> $GITHUB_ENV
76
+ fi;
110
77
echo "image_repository_name=docs-search" >> $GITHUB_ENV
111
78
echo "domain=search.docs.servicestack.net" >> $GITHUB_ENV
112
79
echo "letsencrypt_email=${{ secrets.LETSENCRYPT_EMAIL }}" >> $GITHUB_ENV
113
80
echo "app_name=servicestack-docs-search" >> $GITHUB_ENV
114
- echo "cluster_name=default" >> $GITHUB_ENV
115
- echo "image_url=${{ steps.login_ecr.outputs.registry }}/docs-search:latest" >> $GITHUB_ENV
116
- echo "aws_region=${{ secrets.AWS_REGION }}" >> $GITHUB_ENV
117
81
echo "typesense_api_key=${{ secrets.TYPESENSE_API_KEY }}" >> $GITHUB_ENV
118
82
119
- - name : Populate task definition template
120
- uses :
danielr1996/[email protected]
121
- env :
122
- RELEASE_VERSION : latest
123
- APP_NAME : ${{ env.app_name }}
124
- IMAGE_URL : ${{ env.image_url }}
125
- HOST_DOMAIN : ${{ env.domain }}
126
- TYPESENSE_API_KEY : ${{ env.typesense_api_key }}
127
- LETSENCRYPT_EMAIL : ${{ env.letsencrypt_email }}
128
- AWS_REGION : ${{ env.aws_region }}
129
- CLUSTER_NAME : ${{ env.cluster_name }}
130
- with :
131
- input : search-server/typesense-server/typesense-task-def.json
132
- output : task-definition.json
133
-
134
- - name : Create task definition if doesn't exist
135
- run : aws ecs describe-task-definition --task-definition ${{ env.app_name }} || aws ecs register-task-definition --cli-input-json file://task-definition.json
136
-
137
- - name : Create ECS Service if not exists.
138
- run : aws ecs describe-services --cluster ${{ env.cluster_name }} --services ${{ env.app_name }} | jq '.services[0]' -e || aws ecs create-service --cluster ${{ env.cluster_name }} --service-name ${{ env.app_name }} --task-definition ${{ env.app_name }} --desired-count 1
139
-
140
- - name : Deploy new revision of the task definition
141
- uses : aws-actions/amazon-ecs-deploy-task-definition@v1
83
+ - name : Write .env file
84
+ run : |
85
+ echo "HOST_DOMAIN=${{ env.domain }}" > .env
86
+ echo "LETSENCRYPT_EMAIL=${{ env.letsencrypt_email }}" >> .env
87
+ echo "TYPESENSE_API_KEY=${{ env.typesense_api_key }} >> .env
88
+
89
+ # Copy only the docker-compose.yml to remote server home folder
90
+ - name : copy compose file via scp
91
+
142
92
with :
143
- task-definition : task-definition.json
144
- service : ${{ env.app_name }}
145
- cluster : ${{ env.cluster_name }}
146
- force-new-deployment : true
93
+ host : 52.201.116.245
94
+ username : ${{ secrets.DEPLOY_USERNAME }}
95
+ port : 22
96
+ key : ${{ secrets.DEPLOY_KEY }}
97
+ source : " search-server/typesense-server/docker-compose.yml,.env"
98
+ target : " ~/.deploy/docs-typesense"
99
+
100
+ # # Deploy Docker image with ServiceStack application using `docker compose up` remotely
101
+ # - name: remote docker-compose up via ssh
102
+ # uses: appleboy/[email protected]
103
+ # env:
104
+ # APPTOKEN: ${{ secrets.GITHUB_TOKEN }}
105
+ # USERNAME: ${{ secrets.DEPLOY_USERNAME }}
106
+ # with:
107
+ # host: 52.201.116.245
108
+ # username: ${{ secrets.DEPLOY_USERNAME }}
109
+ # key: ${{ secrets.DEPLOY_KEY }}
110
+ # port: 22
111
+ # envs: APPTOKEN,USERNAME
112
+ # script: |
113
+ # echo $APPTOKEN | docker login ghcr.io -u $USERNAME --password-stdin
114
+ # cd ~/.deploy/docs-typesense
115
+ # docker compose pull
116
+ # docker compose up -d
0 commit comments