Files
michaelschiemer/.gitea/workflows/deploy.yml
Michael Schiemer abe68af124
Some checks failed
Deploy Application / deploy (push) Failing after 8s
Test Runner / test-basic (push) Successful in 7s
Test Runner / test-php (push) Successful in 33s
fix(ci): replace actions/checkout with manual git checkout
The Gitea Actions Runner doesn't have Node.js installed, causing
actions/checkout@v3 (a JavaScript action) to fail with
"Cannot find: node in PATH".

Replace with native shell-based git checkout that works without
Node.js and uses Gitea context variables for repository URL.
2025-11-24 21:54:27 +01:00

70 lines
2.0 KiB
YAML

name: Deploy Application
on:
push:
branches:
- staging
- main
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
steps:
# Manual checkout - works without Node.js
- name: Checkout code
run: |
echo "📥 Checking out repository..."
if [ -d ".git" ]; then
git fetch origin
git checkout ${{ github.ref_name }}
git reset --hard origin/${{ github.ref_name }}
else
git clone --branch ${{ github.ref_name }} --single-branch ${{ github.server_url }}/${{ github.repository }}.git .
fi
- name: Determine environment
id: env
run: |
if [ "${{ github.ref }}" == "refs/heads/staging" ]; then
echo "environment=staging" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" == "refs/heads/main" ]; then
echo "environment=production" >> $GITHUB_OUTPUT
else
echo "environment=staging" >> $GITHUB_OUTPUT
fi
- name: Deploy to server
env:
SSH_HOST: ${{ secrets.SSH_HOST }}
SSH_USER: ${{ secrets.SSH_USER }}
SSH_KEY: ${{ secrets.SSH_KEY }}
run: |
echo "$SSH_KEY" > /tmp/ssh_key
chmod 600 /tmp/ssh_key
ssh -i /tmp/ssh_key -o StrictHostKeyChecking=no $SSH_USER@$SSH_HOST << EOF
set -e
cd /home/deploy/michaelschiemer/current
# Pull latest code
git fetch origin ${{ github.ref_name }}
git reset --hard origin/${{ github.ref_name }}
# Run deployment script
./deployment/scripts/deploy.sh ${{ steps.env.outputs.environment }}
EOF
rm -f /tmp/ssh_key
- name: Deployment status
if: always()
run: |
if [ "${{ job.status }}" == "success" ]; then
echo "✅ Deployment successful"
else
echo "❌ Deployment failed"
exit 1
fi