name: "Build and Deploy Test Version - next.asandikci.com" on: push: branches: - main paths-ignore: - .gitignore - README.md - LICENSE workflow_dispatch: permissions: contents: read pages: write id-token: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true jobs: build_deploy: runs-on: docker container: image: bitnami/minideb:bookworm-arm64 steps: - name: Setup System Resources & Settings run: | apt-get update -y apt-get upgrade -y apt-get install git sshpass ruby-dev build-essential jekyll -y # no need to these after using own docker image! (see asandikci/DockerTests) - name: Health Check [CI TEST] run: | ls -la pwd whoami echo "this is a text file" >> index.html date >> index.html cat index.html echo '${{ secrets.SFTP_PASSWORD }}' > ~/.passwd chmod 0400 ~/.passwd sshpass -f ~/.passwd sftp -oBatchMode=no -o StrictHostKeyChecking=accept-new -b - ${{ secrets.SFTP_USERNAME }}@${{ vars.SFTP_HOST }} << ! put index.html www/index.html bye ! - name: Git Clone run: | git clone https://git.asandikci.com/asandikci.com/web ls -la ./web - name: Build Site run: | ruby -v cd web bundle install bundle exec jekyll b ls -la env: JEKYLL_ENV: "production" - name: Push to "website" branch run: | mkdir website_branch && cd website_branch git clone https://git.asandikci.com/asandikci.com/web cd web git checkout website rm -rfv .* mv ../../web/_site . git config --global user.name "Aliberk Sandıkçı (Forgejo Runner CI)" git config --global user.email git@asandikci.com git add -A git commit --all --message "built latest static resources from main" git push https://asandikci:${{ secrets.PUSH_KEY }}@git.asandikci.com/asandikci.com/web --all - name: Checkout & Deploy run: | mkdir deploy && cd deploy git clone https://git.asandikci.com/asandikci.com/web cd web git checkout website cd _site sshpass -f ~/.passwd sftp -oBatchMode=no -o StrictHostKeyChecking=accept-new -b - ${{ secrets.SFTP_USERNAME }}@${{ vars.SFTP_HOST }} << ! put -r . www/ bye ! # - name: Setup Pages # id: pages # uses: actions/configure-pages@v4 # - name: Setup Ruby # uses: ruby/setup-ruby@v1 # with: # ruby-version: 3.2 # bundler-cache: true # - name: Build site # run: bundle exec jekyll b -d "_site${{ steps.pages.outputs.base_path }}" # env: # JEKYLL_ENV: "production" # - name: Test site # run: | # bundle exec htmlproofer _site \ # \-\-disable-external=true \ # \-\-ignore-urls "/^http:\/\/127.0.0.1/,/^http:\/\/0.0.0.0/,/^http:\/\/localhost/" # - name: Upload site artifact # uses: actions/upload-pages-artifact@v3 # with: # path: "_site${{ steps.pages.outputs.base_path }}"