Refresh xkcd data #311
This file contains 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: Refresh xkcd data | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version-file: '.nvmrc' | |
cache: yarn | |
cache-dependency-path: yarn.lock | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Download xkcd cache | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
name: xkcd-cache-v2 | |
search_artifacts: true | |
workflow_conclusion: "" | |
if_no_artifact_found: warn | |
- name: Uncompress xkcd cache | |
run: | | |
tar_file="xkcd-cache.tar.gz" && \ | |
[ -f "$tar_file" ] && \ | |
tar -xzvf "$tar_file" -C data/raw && \ | |
rm xkcd-cache.tar.gz | |
exit 0 | |
- name: Run script | |
env: | |
TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }} | |
TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }} | |
TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }} | |
TYPESENSE_ADMIN_API_KEY: ${{ secrets.TYPESENSE_ADMIN_API_KEY }} | |
run: | | |
find data/raw -name "*.html" -type f -exec grep -l "explanation may be incomplete" {} + | xargs -r rm | |
yarn fetchData | |
find data/raw -name "*.html" -type f -exec grep -l "server is temporarily unable" {} + | xargs -r rm | |
find data/raw -name "*.json" -type f -exec grep -l "<html>" {} + | xargs -r rm | |
yarn refreshData | |
- name: Compress xkcd cache | |
if: success() || failure() | |
run: | | |
tar -czvf xkcd-cache.tar.gz -C data/raw . | |
- name: Save xkcd cache | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: xkcd-cache-v2 | |
path: xkcd-cache.tar.gz | |
if-no-files-found: warn | |
retention-days: 7 |