test2 #21
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Deploy to AWS | |
| on: | |
| workflow_dispatch: | |
| workflow_call: | |
| push: | |
| branches: | |
| - main | |
| - feature/deploy-to-aws | |
| permissions: | |
| contents: read | |
| packages: read | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: AWS | |
| url: "https://api.${{ vars.EC2_PUBLIC_IP }}.nip.io" | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Copy Docker Compose File From Repo to VM Host | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ vars.EC2_PUBLIC_IP }} | |
| username: ${{ vars.AWS_EC2_USER }} | |
| key: ${{ secrets.AWS_EC2_PRIVATE_KEY }} | |
| source: "deployment/compose.aws.yml" | |
| target: /home/${{ vars.AWS_EC2_USER }}/deployment | |
| strip_components: 1 | |
| overwrite: true | |
| - name: SSH to VM and Create .env.prod | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ vars.EC2_PUBLIC_IP }} | |
| username: ${{ vars.AWS_EC2_USER }} | |
| key: ${{ secrets.AWS_EC2_PRIVATE_KEY }} | |
| script: | | |
| cd /home/${{ vars.AWS_EC2_USER }} | |
| rm -f .env.prod | |
| touch .env.prod | |
| echo "EC2_PUBLIC_IP=${{ vars.EC2_PUBLIC_IP }}" >> .env.prod | |
| echo "CLIENT_HOST=client.${{ vars.EC2_PUBLIC_IP }}.nip.io" >> .env.prod | |
| echo "SERVER_HOST=api.${{ vars.EC2_PUBLIC_IP }}.nip.io" >> .env.prod | |
| echo "PUBLIC_API_URL=https://api.${{ vars.EC2_PUBLIC_IP }}.nip.io" >> .env.prod | |
| echo "CLIENT_IMAGE=ghcr.io/aet-devops25/team-devoops/client:latest" >> .env.prod | |
| echo "GATEWAY_IMAGE=ghcr.io/aet-devops25/team-devoops/server/gateway:latest" >> .env.prod | |
| echo "CHAT_IMAGE=ghcr.io/aet-devops25/team-devoops/server/chat:latest" >> .env.prod | |
| echo "MATCHING_IMAGE=ghcr.io/aet-devops25/team-devoops/server/matching:latest" >> .env.prod | |
| echo "USER_IMAGE=ghcr.io/aet-devops25/team-devoops/server/user:latest" >> .env.prod | |
| echo "GENAI_IMAGE=ghcr.io/aet-devops25/team-devoops/server/genai:latest" >> .env.prod | |
| echo "Verifying .env.prod file contents:" | |
| cat .env.prod | |
| - name: SSH to VM and Execute Docker-Compose Up | |
| uses: appleboy/[email protected] | |
| with: | |
| host: ${{ vars.EC2_PUBLIC_IP }} | |
| username: ${{ vars.AWS_EC2_USER }} | |
| key: ${{ secrets.AWS_EC2_PRIVATE_KEY }} | |
| script: | | |
| cd /home/${{ vars.AWS_EC2_USER }} | |
| echo "Current directory: $(pwd)" | |
| echo "Listing files in current directory:" | |
| ls -la | |
| echo "Checking .env.prod file:" | |
| cat .env.prod | |
| echo "Logging into Docker registry..." | |
| # Versuche zuerst einen Test-Pull | |
| docker pull ghcr.io/aet-devops25/team-devoops/client:latest || echo "Initial pull failed (expected)" | |
| # Login mit Debug-Output | |
| echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin | |
| # Warte kurz | |
| sleep 2 | |
| # Überprüfe Repository-Zugriff | |
| echo "Checking repository access..." | |
| curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/user/packages | |
| echo "Checking specific repository..." | |
| curl -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/users/aet-devops25/packages | |
| # Versuche erneut zu pullen | |
| echo "Testing pull after login..." | |
| docker pull ghcr.io/aet-devops25/team-devoops/client:latest | |
| echo "Starting Docker Compose..." | |
| docker compose -f deployment/compose.aws.yml --env-file=/home/${{ vars.AWS_EC2_USER }}/.env.prod up --pull=always -d |