diff --git a/.ci/deploy.sh b/.ci/deploy.sh
deleted file mode 100755
index 58a7aaea..00000000
--- a/.ci/deploy.sh
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/bin/bash
-set -e # Exit with nonzero exit code if anything fails
-
-function doCompile {
- echo "Running script..."
- python3 -m magic_spoiler
-}
-
-# Pull requests and commits to other branches shouldn't try to deploy, just build to verify
-if [[ ! -d $OUTPUT_PATH ]]; then
- mkdir "$OUTPUT_PATH"
- echo "Skipping deploy; just doing a build."
- # Run our compile script and let user know in logs
- doCompile
- exit 0
-fi
-
-# Run our compile script and exit gracefully if there are no updates
-if ! doCompile; then
- echo "::warning::No changes!"
- exit 0
-fi
-
-cd "$OUTPUT_PATH"
-git config user.name github-actions
-git config user.email github-actions@github.com
-
-# We don't want the AllSets... waste of space
-git add -A .
-git commit -m "Deploy: ${GITHUB_SHA}"
-
-# push using built-in token
-git push
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index b1ba14bb..2cc9edf5 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -1,6 +1,7 @@
name: Deploy
on:
+ workflow_dispatch:
push:
branches:
- master
@@ -17,9 +18,13 @@ on:
jobs:
deploy:
+ # do not run the sheduled run on forks
+ if: github.event != 'schedule' || github.repository_owner == 'Cockatrice'
+
runs-on: ubuntu-latest
env:
+ DEPLOY: ${{github.ref == 'refs/heads/master'}}
OUTPUT_PATH: out
steps:
@@ -27,7 +32,7 @@ jobs:
uses: actions/checkout@v2
- name: Checkout output branch
- if: github.ref == 'refs/heads/master'
+ if: env.DEPLOY
uses: actions/checkout@v2
with:
ref: files
@@ -42,6 +47,18 @@ jobs:
python3 -m pip install --upgrade pip setuptools
python3 -m pip install --requirement requirements.txt
- - name: Deploy
+ - name: Run script
+ id: run
shell: bash
- run: ./.ci/deploy.sh
+ run: python3 -m magic_spoiler
+
+ - name: Deploy changes
+ if: env.DEPLOY && steps.run.outputs.deploy != null
+ shell: bash
+ working-directory: ${{env.OUTPUT_PATH}}
+ run: |
+ git config user.name github-actions
+ git config user.email github-actions@github.com
+ git add -A .
+ git commit -m "Deploy: $GITHUB_SHA"
+ git push
diff --git a/.gitignore b/.gitignore
index f12822ff..275349cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,6 @@
# Project specific
out/
AllSets.pre.json
-deploy_key.enc
# Byte-compiled / optimized / DLL files
__pycache__/
@@ -100,4 +99,4 @@ ENV/
.DS_Store
*.sqlite
-.*_cache
\ No newline at end of file
+.*_cache
diff --git a/README.md b/README.md
index 6f9ca614..750fb2ca 100644
--- a/README.md
+++ b/README.md
@@ -6,13 +6,13 @@
# Magic-Spoiler [](https://discord.gg/3Z9yzmA) [](https://gitter.im/Cockatrice/Magic-Spoiler) #
-Magic-Spoiler is a Python script to scrape [Scryfall](https://scryfall.com) to compile XML files (Cockatrice formatted) and application-ready json files (mtgjson formatted) with information about spoiled cards from upcoming sets.
+Magic-Spoiler is a Python script to scrape [Scryfall](https://scryfall.com) to compile XML files (Cockatrice formatted) and application-ready JSON files (MTGJSON formatted) with information about spoiled cards from upcoming sets.
-## Output [](https://travis-ci.org/Cockatrice/Magic-Spoiler) ##
+## Output [](https://github.com/Cockatrice/Magic-Spoiler/actions?query=workflow%3ADeploy+event%3Aschedule+branch%3Amaster) ##
Just looking for XML or JSON files? [They are in our `files` branch!](https://github.com/Cockatrice/Magic-Spoiler/tree/files)
-When run by Travis, the script automatically updates the files and uploads new versions there. ([History of changes](https://github.com/Cockatrice/Magic-Spoiler/commits/files))
-Travis CI is run daily on a cron job basis.
+When run by our CI, the script automatically updates the files and uploads new versions to this branch. ([History of changes](https://github.com/Cockatrice/Magic-Spoiler/commits/files))
+GitHub Actions are scheduled to autoamtically run on a daily basis.
## Errors ##
Noticed an error in the card data? Check out our [Contributing file](https://github.com/Cockatrice/Magic-Spoiler/blob/master/.github/CONTRIBUTING.md) for information on how to help!
diff --git a/magic_spoiler/__main__.py b/magic_spoiler/__main__.py
index b8aef5ee..2c51b167 100644
--- a/magic_spoiler/__main__.py
+++ b/magic_spoiler/__main__.py
@@ -7,7 +7,6 @@ import hashlib
import json
import pathlib
import shutil
-import sys
import time
from typing import IO, Any, Dict, List, Tuple, Union
@@ -525,7 +524,7 @@ def write_set_json(trice_dict: List[Dict[str, Any]], set_obj: Dict[str, str]) ->
output_file_path = OUTPUT_TMP_DIR.joinpath("{}.json".format(set_obj["code"]))
- OUTPUT_TMP_DIR.mkdir(exist_ok=True)
+ OUTPUT_TMP_DIR.mkdir(parents=True, exist_ok=True)
with output_file_path.open("w") as f:
json.dump(trice_dict, f, sort_keys=True, indent=4)
@@ -630,9 +629,9 @@ def main() -> None:
# Cleanup outdated stuff that's not necessary
changed |= delete_old_files()
- # Set nonzero exit code if files haven't changed
- if not changed:
- sys.exit(1)
+ # Set output to deploy
+ if changed:
+ print("::set-output name=deploy::true")
if __name__ == "__main__":