Skip to content

move async into ahead #6

move async into ahead

move async into ahead #6

name: Deploy Release Webhook
on:
push:
branches:
- main
- dev
paths:
- 'eng/ReleaseWebhook/**'
- '.github/workflows/deploy-release-webhook.yml'
workflow_dispatch:
jobs:
build-primary-container:
runs-on: ubuntu-latest
steps:
- name: Login container
run: echo ${{ secrets.DOCKER_PASSWORD }} | docker login -u ${{ vars.DOCKER_USERNAME }} ${{ vars.DOCKER_REGISTRY }} --password-stdin
- name: Checkout code
uses: actions/checkout@v4
- name: Build container
run: |
dotnet publish ./eng/ReleaseWebhook/ReleaseWebhook.csproj -c Release --os linux --arch x64 /t:PublishContainer /p:ContainerRepository=chats-release-webhook
- name: Tag container with run number
run: |
docker tag chats-release-webhook ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/chats-release-webhook:r${{ github.run_number }}
docker tag chats-release-webhook ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/chats-release-webhook:latest
- name: Push container
run: |
docker push ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/chats-release-webhook:r${{ github.run_number }}
docker push ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/chats-release-webhook:latest
deploy:
runs-on: ubuntu-latest
needs: build-primary-container
steps:
- uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: deploy
run: |
ssh -o StrictHostKeyChecking=no -p 22 ${{ secrets.SSH_TARGET }} << 'EOF'
docker pull ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/chats-release-webhook:r${{ github.run_number }}
cd chats-release-webhook
echo "Deploying chats release webhook: ${{ github.ref_name }}"
sed -i "s/chats-release-webhook:r.*/chats-release-webhook:r${{ github.run_number }}/" ~/chats-release-webhook/docker-compose.yml
docker compose up -d --remove-orphans
EOF