.github/workflows/aligulac-import.yaml #66
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
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 20 * * 5' | |
#permissions: | |
# contents: write | |
jobs: | |
import_aligulac: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:16-alpine | |
ports: | |
- 5432:5432 | |
env: | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_INITDB_ARGS: "--no-clean --no-sync --set wal_level=minimal --set max_wal_senders=0 --set fsync=off --set full_page_writes=off --set synchronous_commit=off --set synchronous_commit=off --set bgwriter_lru_maxpages=0 --set archive_mode=off --set work_mem=256MB --set maintenance_work_mem=256MB --set shared_buffers=512MB" | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Install postgres client & rg | |
run: sudo apt-get install -y postgresql-client ripgrep | |
- name: Postgres client version | |
run: psql --version | |
- name: Install yq | |
run: sudo snap install yq --channel=v4/stable | |
- name: Check out repository code | |
uses: actions/checkout@v4 | |
- name: Download Aligulac dump | |
run: wget -qO- http://static.aligulac.com/aligulac.sql.gz | gzip -d > aligulac.sql | |
- name: Modify dump for faster import | |
run: rg --passthru "^CREATE TABLE" -r "CREATE UNLOGGED TABLE" aligulac.sql > aligulac2.sql | |
- name: Modify dump for faster import 2 | |
run: rg --passthru "^CREATE INDEX group" -r "--CREATE INDEX group" aligulac2.sql > aligulac3.sql | |
- name: grep changes | |
run: rg UNLOGGED aligulac3.sql && rg -C 1 "CREATE INDEX" aligulac3.sql | |
- name: Import Aligulac DB | |
run: PGPASSWORD=postgres psql -h localhost -p 5432 -d postgres -U postgres -f aligulac3.sql | |
- name: Import GuessTheSC2Pro Fixes | |
run: PGPASSWORD=postgres psql -h localhost -p 5432 -d postgres -U postgres -f db_import/data-fixup.sql | |
- name: Export player data | |
run: PGPASSWORD=postgres psql -h localhost -p 5432 -d postgres -U postgres --csv -f db_import/top500-earnings.sql > result.csv | |
- name: Convert to JSON | |
run: yq result.csv -p=csv -o=json > players.json | |
- name: Truncated 400 Player Json | |
run: yq '.[0:400]' players.json -o=json > players400.json && yq 'length' players400.json | |
- name: Truncated 250 Player Json | |
run: yq '.[0:250]' players.json -o=json > players250.json && yq 'length' players250.json | |
- name: Turn Json files into JS | |
run: sed -i -e '1s/^/var players = /' -e '$a;' players400.json && sed -i -e '1s/^/var players = /' -e '$a;' players250.json | |
- name: Rename to js | |
run: mv players400.json players400.js && mv players250.json players250.js | |
- name: Move to correct location | |
run: mv players400.js assets/js/players400.js && mv players250.js assets/js/players250.js | |
- name: Git Status | |
run: git config --global diff.algorithm patience && git status && git diff assets/js/players250.js | |
- name: Commit changes | |
run: | | |
git config --global user.name 'GH Action Bot' | |
git config --global user.email '[email protected]' | |
git add assets/js/ | |
git commit -m "Automated Player Update" | |
git push |