Skip to content
This repository was archived by the owner on Oct 11, 2024. It is now read-only.

Commit 80cc5df

Browse files
authored
Update search-index-update.yml
1 parent d56da35 commit 80cc5df

File tree

1 file changed

+42
-72
lines changed

1 file changed

+42
-72
lines changed

.github/workflows/search-index-update.yml

+42-72
Original file line numberDiff line numberDiff line change
@@ -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/[email protected]
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/[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+
uses: appleboy/[email protected]
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/[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

Comments
 (0)