name: Deploy App on: push: branches: - master jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Log in to Gitea Registry run: | echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login git.oskarmikael.com -u ${{ secrets.REGISTRY_USER }} --password-stdin - name: Build and Push Docker image run: | IMAGE=git.oskarmikael.com/oskarb/scheduler:latest docker buildx build \ -f Dockerfile \ --platform linux/amd64 \ -t $IMAGE \ --push . - name: Run migrations run: | docker-compose -f docker-compose.prod.yml run --rm app php artisan migrate --force - name: Install Composer Dependencies run: | docker-compose -f docker-compose.prod.yml run --rm composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist - name: Install Node Dependencies run: | docker-compose -f docker-compose.prod.yml run --rm app npm install - name: Build assets run: | docker-compose -f docker-compose.prod.yml run --rm app npm run build - name: Deploy to LXC uses: appleboy/ssh-action@v0.1.9 with: host: ${{ secrets.PROD_HOST }} username: ${{ secrets.PROD_USER }} key: ${{ secrets.PROD_SSH_KEY }} port: 22 script: | cd /var/www/scheduler docker-compose -f docker-compose.prod.yml pull docker-compose -f docker-compose.prod.yml up -d