name: Build Docker on: push: branches: - main jobs: deploy: runs-on: node-ansible steps: - name: Setup SSH key run: | echo "${{ secrets.SSH_PRIVATE_KEY }}" > /tmp/id_fin chmod 600 /tmp/id_fin - name: Create inventory run: echo "${{ secrets.INVENTORY }}" > inventory.ini - name: Create secrets.yml run: echo "${{ secrets.SECRETS }}" > secrets.yml - name: Create .env file run: echo "${{ secrets.RUNNER_ENV }}" > .env - name: Checkout only deploy.yml uses: actions/checkout@v4 with: repository: MH.Dmitrii/wedding-site ref: main path: tmp-repo sparse-checkout: | ansible/deploy.yml - name: Run Ansible playbook run: ansible-playbook -i inventory.ini tmp-repo/ansible/deploy.yml -e @secrets.yml -e env_file="$(pwd)/.env" env: ANSIBLE_PRIVATE_KEY_FILE: /tmp/id_fin ANSIBLE_HOST_KEY_CHECKING: "False" build: runs-on: node-docker needs: deploy steps: - uses: actions/checkout@v4 - name: Create .env file run: echo "${{ secrets.WEDDING_SITE_ENV }}" > .env - name: Build image run: docker build -t back:latest -f docker/dockerfile . - name: Start docker-compose run: docker compose --env-file .env -f docker/docker-compose.yaml up -d