@@ -64,83 +64,53 @@ jobs:
6464 docker run -i --env-file typesense-scraper-updated.env -e "CONFIG=$(cat typesense-scraper-config.json | jq -r tostring)" typesense/docsearch-scraper
6565 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":["*"]}'
6666
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- uses : docker/build-push-action@v2.2.2
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
10968 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;
11077 echo "image_repository_name=docs-search" >> $GITHUB_ENV
11178 echo "domain=search.docs.servicestack.net" >> $GITHUB_ENV
11279 echo "letsencrypt_email=${{ secrets.LETSENCRYPT_EMAIL }}" >> $GITHUB_ENV
11380 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
11781 echo "typesense_api_key=${{ secrets.TYPESENSE_API_KEY }}" >> $GITHUB_ENV
11882
119- - name : Populate task definition template
120- uses : danielr1996/envsubst-action@1.0.0
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+ uses : appleboy/scp-action@v0.1.3
14292 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/ssh-action@v0.1.5
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