fix: support modern kaggle auth in workflows #4
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: Push Kaggle Kernels | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - dev | |
| jobs: | |
| push-kernels: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install Kaggle CLI | |
| run: pip install kaggle | |
| - name: Configure Kaggle credentials | |
| env: | |
| KAGGLE_API_TOKEN: ${{ secrets.KAGGLE_API_TOKEN }} | |
| KAGGLE_USERNAME: ${{ secrets.KAGGLE_USERNAME }} | |
| KAGGLE_KEY: ${{ secrets.KAGGLE_KEY }} | |
| run: | | |
| mkdir -p ~/.kaggle | |
| if [ -n "${KAGGLE_API_TOKEN}" ]; then | |
| printf '%s' "${KAGGLE_API_TOKEN}" > ~/.kaggle/access_token | |
| chmod 600 ~/.kaggle/access_token | |
| elif [ -n "${KAGGLE_USERNAME}" ] && [ -n "${KAGGLE_KEY}" ]; then | |
| cat > ~/.kaggle/kaggle.json <<EOF | |
| {"username":"${KAGGLE_USERNAME}","key":"${KAGGLE_KEY}"} | |
| EOF | |
| chmod 600 ~/.kaggle/kaggle.json | |
| else | |
| echo "No Kaggle credentials found. Set KAGGLE_API_TOKEN or KAGGLE_USERNAME/KAGGLE_KEY secrets." | |
| exit 1 | |
| fi | |
| - name: Verify Kaggle authentication | |
| run: kaggle auth print-access-token > /dev/null | |
| - name: Push notebooks to Kaggle | |
| run: | | |
| set -e | |
| for metadata in *.kernel-metadata.json; do | |
| cp "$metadata" kernel-metadata.json | |
| echo "Pushing kernel using $metadata" | |
| kaggle kernels push -p . | |
| done | |
| rm -f kernel-metadata.json |