From 96c76fa9e79d018bfbb7e13011a5b43abcb89b60 Mon Sep 17 00:00:00 2001 From: link2xt Date: Sun, 3 Sep 2023 01:45:32 +0000 Subject: [PATCH] ci: refine Jekyll preview workflow Use PR ID in the URL instead of the hash and build without Docker. --- .github/workflows/jekyll.yml | 55 ++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/.github/workflows/jekyll.yml b/.github/workflows/jekyll.yml index 1d14f49..4bc3305 100644 --- a/.github/workflows/jekyll.yml +++ b/.github/workflows/jekyll.yml @@ -8,36 +8,49 @@ jobs: runs-on: ubuntu-latest steps: - - name: Can we upload the preview? # Get Pullrequest ID + - name: Get Pullrequest ID id: prepare run: | - if [ $(expr length "${{ secrets.USERNAME }}") -gt "1" ]; then echo ::set-output name=uploadtoserver::true ;fi - - uses: actions/checkout@v1 - - name: Fix lockfile permissions - run: | - chmod 666 Gemfile.lock - - name: Build the site in the jekyll/builder container + PULLREQUEST_ID=$(echo "${{ github.ref }}" | cut -d "/" -f3) + echo "prid=$PULLREQUEST_ID" >> $GITHUB_OUTPUT + if test $(expr length "${{ secrets.USERNAME }}") -gt "1"; then + echo "uploadtoserver=true" >> $GITHUB_OUTPUT + fi + - uses: actions/checkout@v3 + + - name: Install Bundler + run: sudo gem install bundler + + - name: Cache bundle + with: + path: vendor/bundle + key: ${{ runner.os }}-gems-${{ hashFiles('Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-gems- + + - name: Install Jekyll + run: bundle install + + - name: Build the site with Jekyll run: | - docker run \ - -v ${{ github.workspace }}:/srv/jekyll -v ${{ github.workspace }}/_site:/srv/jekyll/_site \ - jekyll/builder:latest /bin/bash -c "chmod 777 /srv/jekyll && jekyll build --future" - - name: Upload + bundle exec jekyll build --future --baseurl "/${{ steps.prepare.outputs.prid }}" + mkdir ${{ steps.prepare.outputs.prid }} + + - name: Upload preview if: steps.prepare.outputs.uploadtoserver - uses: appleboy/scp-action@master - with: - username: ${{ secrets.USERNAME }} - key: ${{ secrets.KEY }} - host: mailadm.testrun.org - port: 22 - source: _site - target: providerOverview/${{ github.sha }}/ + run: | + mkdir -p "$HOME/.ssh" + echo "${{ secrets.KEY }}" > "$HOME/.ssh/key" + chmod 600 "$HOME/.ssh/key" + rsync -avzh -e "ssh -i $HOME/.ssh/key -o StrictHostKeyChecking=no" $GITHUB_WORKSPACE/_site/ "${{ secrets.USERNAME }}@mailadm.testrun.org:providerOverview/${{ steps.prepare.outputs.prid }}/" + - name: "Post links to details" if: steps.prepare.outputs.uploadtoserver id: details run: | # URLs for API connection and uploads export GITHUB_API_URL="https://api.github.com/repos/deltachat/provider-db/statuses/${{ github.event.after }}" - export PREVIEW_LINK="https://mailadm.testrun.org/provider/${{ github.sha }}/_site/" + export PREVIEW_LINK="https://mailadm.testrun.org/provider/${{ steps.prepare.outputs.prid }}/_site/" # Post AppImage download link to check details export STATUS_DATA="{\"state\": \"success\", \ \"description\": \"Preview the page here:\", \ @@ -49,7 +62,7 @@ jobs: if: steps.details.outputs.comment uses: rytswd/respost@v0.1.0 with: - body: "Check out the page preview at https://mailadm.testrun.org/provider/${{ github.sha }}/_site/" + body: "Check out the page preview at https://mailadm.testrun.org/provider/${{ steps.prepare.outputs.prid }}/_site/" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}