From 0f58d95ea890a7333131547bba95a43e582a3f78 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:02:53 -0400 Subject: [PATCH 1/8] Use workflow commands to set up environment variables https://help.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable --- .github/workflows/build.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17af62cb1..7da428d32 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,11 +25,11 @@ jobs: submodules: true - name: Set up environment 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-env name=DF_FOLDER::${HOME}/DF/${DF_VERSION}/df_linux" - name: Download DF run: | - source "$HOME/.df-env" sh travis/download-df.sh - name: Build docs run: | @@ -41,7 +41,6 @@ jobs: path: docs/html - name: Build DFHack run: | - source "$HOME/.df-env" cmake \ -S . \ -B build-ci \ @@ -53,7 +52,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\"" From c6283ea262f401845c2d0f6e645a7dc18fff79c3 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:04:33 -0400 Subject: [PATCH 2/8] Make download-df.sh fail sooner --- travis/download-df.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/travis/download-df.sh b/travis/download-df.sh index 834aa4da7..6918a596a 100755 --- a/travis/download-df.sh +++ b/travis/download-df.sh @@ -1,5 +1,7 @@ #!/bin/sh +set -e + tardest="df.tar.bz2" which md5sum && alias md5=md5sum From b4a55110e3a9572b32df10c841e7b4d06ad0a9da Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:35:23 -0400 Subject: [PATCH 3/8] Also try downloading DF from files.dfhack.org --- travis/download-df.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/travis/download-df.sh b/travis/download-df.sh index 6918a596a..49dcedea7 100755 --- a/travis/download-df.sh +++ b/travis/download-df.sh @@ -4,7 +4,6 @@ set -e tardest="df.tar.bz2" -which md5sum && alias md5=md5sum selfmd5=$(openssl md5 < "$0") echo $selfmd5 @@ -30,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 < Date: Mon, 29 Jun 2020 22:35:36 -0400 Subject: [PATCH 4/8] Attempt to cache DF --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7da428d32..6ad88dc27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,11 @@ jobs: DF_VERSION="$(sh travis/get-df-version.sh)" echo "::set-env 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: ${DF_VERSION} - name: Download DF run: | sh travis/download-df.sh From e33a3ffff9f68a61aa39597bb8339d211e5574c6 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:40:58 -0400 Subject: [PATCH 5/8] Fix cache key --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6ad88dc27..fdea2180e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,15 +24,17 @@ jobs: with: submodules: true - name: Set up environment + id: env_setup run: | 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: ${DF_VERSION} + key: ${{ steps.env_setup.outputs.df_version }} - name: Download DF run: | sh travis/download-df.sh From e26a091b7d02eacb3b0d4855ded6151ebff0fc01 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:52:44 -0400 Subject: [PATCH 6/8] Clean up cached DF --- .github/workflows/build.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fdea2180e..aadb1a15f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,6 +71,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: From c4aebfdf65acf63293648316144f7da2f11c5f58 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 22:53:05 -0400 Subject: [PATCH 7/8] Use setup-python --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aadb1a15f..4205e5e2a 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,7 +22,7 @@ jobs: lua5.3 \ ninja-build \ zlib1g-dev - sudo pip3 install --system sphinx + pip install sphinx - name: Clone DFHack uses: actions/checkout@v1 with: From 6b2887d31b0e84b29b1121fabab96b5610e9678e Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 29 Jun 2020 23:00:20 -0400 Subject: [PATCH 8/8] Upgrade to checkout@v2 --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4205e5e2a..612302397 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,8 +24,9 @@ jobs: zlib1g-dev 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