diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17af62cb1..612302397 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,6 +6,10 @@ jobs: build: runs-on: ubuntu-18.04 steps: + - name: Set up Python 3 + uses: actions/setup-python@v2 + with: + python-version: 3 - name: Install dependencies run: | sudo apt-get update @@ -18,18 +22,26 @@ jobs: lua5.3 \ ninja-build \ zlib1g-dev - sudo pip3 install --system sphinx + pip install sphinx - name: Clone DFHack - uses: actions/checkout@v1 + uses: actions/checkout@v2 with: + fetch-depth: 0 # unlimited - we need past tags submodules: true - name: Set up environment + id: env_setup run: | - echo export DF_VERSION="$(sh travis/get-df-version.sh)" >> "$HOME/.df-env" - echo export DF_FOLDER="$HOME/DF/$DF_VERSION/df_linux" >> "$HOME/.df-env" + DF_VERSION="$(sh travis/get-df-version.sh)" + echo "::set-env name=DF_VERSION::${DF_VERSION}" + echo "::set-output name=df_version::${DF_VERSION}" + echo "::set-env name=DF_FOLDER::${HOME}/DF/${DF_VERSION}/df_linux" + - name: Fetch DF cache + uses: actions/cache@v2 + with: + path: ~/DF + key: ${{ steps.env_setup.outputs.df_version }} - name: Download DF run: | - source "$HOME/.df-env" sh travis/download-df.sh - name: Build docs run: | @@ -41,7 +53,6 @@ jobs: path: docs/html - name: Build DFHack run: | - source "$HOME/.df-env" cmake \ -S . \ -B build-ci \ @@ -53,7 +64,6 @@ jobs: ninja -C build-ci install - name: Run tests run: | - source "$HOME/.df-env" export TERM=dumb mv "$DF_FOLDER"/dfhack.init-example "$DF_FOLDER"/dfhack.init script -qe -c "python travis/run-tests.py --headless --keep-status \"$DF_FOLDER\"" @@ -66,6 +76,12 @@ jobs: with: name: test-artifacts path: artifacts + - name: Clean up DF folder + # to prevent DFHack-generated files from ending up in the cache + # (download-df.sh also removes them, this is just to save cache space) + if: success() || failure() + run: | + rm -rf "$DF_FOLDER" lint: runs-on: ubuntu-18.04 steps: diff --git a/travis/download-df.sh b/travis/download-df.sh index 834aa4da7..49dcedea7 100755 --- a/travis/download-df.sh +++ b/travis/download-df.sh @@ -1,8 +1,9 @@ #!/bin/sh +set -e + tardest="df.tar.bz2" -which md5sum && alias md5=md5sum selfmd5=$(openssl md5 < "$0") echo $selfmd5 @@ -28,7 +29,20 @@ if [ ! -f receipt ]; then patch=$(echo "$DF_VERSION" | cut -d. -f3) url="http://www.bay12games.com/dwarves/df_${minor}_${patch}_linux.tar.bz2" echo Downloading - wget "$url" -O "$tardest" + while read url; do + echo "Attempting download: ${url}" + if wget -v "$url" -O "$tardest"; then + break + fi + done <