name: Git Backup to WebDAV on: push: # This ensures it runs on every branch push branches: - '**' jobs: print-content: runs-on: debian-latest steps: - name: checkout code uses: actions/checkout@v4 with: fetch-depth: 0 - name: archive repository run: | PROJECT_NAME=$(echo "${{ github.repository }}" | cut -d'/' -f2) BRANCH_NAME=$(echo "${{ github.ref_name }}" | sed 's/\//-/g') TIMESTAMP=$(date +'%Y-%m-%d_%H-%M') # Create the local variable FINAL_NAME="${PROJECT_NAME}_${BRANCH_NAME}_${TIMESTAMP}.tar.gz" # CRITICAL: Save it for the next step echo "PROJECTNAME=$PROJECT_NAME" >> $GITHUB_ENV echo "FILENAME=$FINAL_NAME" >> $GITHUB_ENV # Create the archive git archive --format=tar.gz -v -o "$FINAL_NAME" HEAD echo "Archive created: $FINAL_NAME" - name: Upload via Curl run: | ls -lh "$FILENAME" curl -T "$FILENAME" \ -u "${{ secrets.WEBDAV_USER }}:${{ secrets.WEBDAV_PASSWORD }}" \ "${{ secrets.WEBDAV_URL }}/$PROJECTNAME/$FILENAME"