From 56f9697223d958771233fed8ff74274b6a920737 Mon Sep 17 00:00:00 2001 From: RedEtherbloom Date: Mon, 11 Nov 2024 22:26:47 +0100 Subject: [PATCH] feat: Build taskwarrior CI against stable --- .../actions/install-taskwarrior/action.yml | 45 +++++++++++++++++++ .github/workflows/cd.yml | 13 ++---- .github/workflows/ci.yml | 13 ++---- 3 files changed, 53 insertions(+), 18 deletions(-) create mode 100644 .github/actions/install-taskwarrior/action.yml diff --git a/.github/actions/install-taskwarrior/action.yml b/.github/actions/install-taskwarrior/action.yml new file mode 100644 index 0000000..7a540d5 --- /dev/null +++ b/.github/actions/install-taskwarrior/action.yml @@ -0,0 +1,45 @@ +name: 'Install Taskwarrior' +description: 'Builds taskwarrior from the latest stable release and installs it' +inputs: + secret_gh_token: + description: "GH token for downloading the assets" + required: true +runs: + using: "composite" + steps: + # This pattern should only match match assets with a [numbers and dots] suffix + - name: Download latest stable taskwarrior release + run: | + gh release download -p "task-[0-9.]*.tar.gz" -R "GothenburgBitFactory/taskwarrior" -D /tmp/download + shell: bash + env: + GH_TOKEN: ${{ inputs.secret_gh_token }} + # Future proofing + - name: Check that we only got one release asset + run: | + if [ $(ls -1 /tmp/download | wc -l) -ne 1 ] + then + echo "Expected exactly one release asset" + exit 1 + else + echo "Got expected number of release assets" + fi + shell: bash + - name: Extract taskwarrior without version number + run: | + cd /tmp/download + find . -name "*.tar.gz" -exec mv {} task.tar.gz \; + tar -xf task.tar.gz --transform='s;^task-[0-9.]*/;task/;' + cd /tmp + mv download/task taskwarrior + rm -rf download + shell: bash + - name: Compile taskwarrior + run: | + cd /tmp/taskwarrior + cmake -S . -B build -DCMAKE_BUILD_TYPE=Release . + cmake --build build + sudo cmake --install build + cd .. + rm -rf taskwarrior/ + shell: bash \ No newline at end of file diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index ec729d0..386a4d3 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -204,15 +204,10 @@ jobs: override: true profile: minimal - run: sudo apt-get update - - name: Compile taskwarrior - run: | - cd /tmp - git clone https://github.com/GothenburgBitFactory/taskwarrior - cd taskwarrior - git checkout v3.0.0 - cmake -DCMAKE_BUILD_TYPE=release -DENABLE_SYNC=OFF . - make - sudo make install + - name: 'Install Taskwarrior' + uses: ./.github/actions/install-taskwarrior + with: + secret_gh_token: ${{ secrets.GITHUB_TOKEN }} - run: | task --version - uses: actions/checkout@v4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee66e1e..de360a2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,15 +32,10 @@ jobs: toolchain: stable override: true - run: sudo apt-get update - - name: Compile taskwarrior - run: | - cd /tmp - git clone https://github.com/GothenburgBitFactory/taskwarrior - cd taskwarrior - git checkout v3.0.0 - cmake -DCMAKE_BUILD_TYPE=release -DENABLE_SYNC=OFF . - make - sudo make install + - name: 'Install Taskwarrior' + uses: ./.github/actions/install-taskwarrior + with: + secret_gh_token: ${{ secrets.GITHUB_TOKEN }} - run: | task --version - uses: actions/checkout@v4