name: ICS/KISA Feed Refresh on: schedule: - cron: '0 2 * * MON' workflow_dispatch: inputs: live_fetch: description: 'Attempt live RSS fetch (fallback to samples on failure)' required: false default: true type: boolean offline_snapshot: description: 'Force offline samples only (no network)' required: false default: false type: boolean jobs: refresh: runs-on: ubuntu-22.04 permissions: contents: read env: ICSCISA_FEED_URL: ${{ secrets.ICSCISA_FEED_URL }} KISA_FEED_URL: ${{ secrets.KISA_FEED_URL }} FEED_GATEWAY_HOST: concelier-webservice FEED_GATEWAY_SCHEME: http LIVE_FETCH: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.live_fetch || 'true' }} OFFLINE_SNAPSHOT: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.offline_snapshot || 'false' }} steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set run metadata id: meta run: | RUN_DATE=$(date -u +%Y%m%d) RUN_ID="icscisa-kisa-$(date -u +%Y%m%dT%H%M%SZ)" echo "run_date=$RUN_DATE" >> $GITHUB_OUTPUT echo "run_id=$RUN_ID" >> $GITHUB_OUTPUT echo "RUN_DATE=$RUN_DATE" >> $GITHUB_ENV echo "RUN_ID=$RUN_ID" >> $GITHUB_ENV - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.11' - name: Run ICS/KISA refresh run: | python scripts/feeds/run_icscisa_kisa_refresh.py \ --out-dir out/feeds/icscisa-kisa \ --run-date "${{ steps.meta.outputs.run_date }}" \ --run-id "${{ steps.meta.outputs.run_id }}" - name: Show fetch log run: cat out/feeds/icscisa-kisa/${{ steps.meta.outputs.run_date }}/fetch.log - name: Upload refresh artifacts uses: actions/upload-artifact@v4 with: name: icscisa-kisa-${{ steps.meta.outputs.run_date }} path: out/feeds/icscisa-kisa/${{ steps.meta.outputs.run_date }} if-no-files-found: error retention-days: 21