Skip to content

Build and Deploy

Build and Deploy #28

Workflow file for this run

name: "Build and Deploy"
on:
push:
branches:
- gh-pages
paths-ignore:
- .gitignore
- README.md
- LICENSE
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# Allow one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
# If using the 'assets' git submodule from Chirpy Starter, uncomment above
# (See: https://github.com/cotes2020/chirpy-starter/tree/main/assets)
- name: Setup Pages
id: pages
uses: actions/configure-pages@v3
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 3 # reads from a '.ruby-version' or '.tools-version' file if 'ruby-version' is omitted
bundler-cache: true
working-directory: docs/
- name: Build site
run: bundle exec jekyll b -d "_site${{ steps.pages.outputs.base_path }}"
working-directory: docs/
env:
JEKYLL_ENV: "production"
- name: Test site
working-directory: docs/
run: |
bundle exec htmlproofer _site --disable-external --check-html --allow_hash_href
- name: Upload site artifact
uses: actions/upload-pages-artifact@v1
with:
path: "docs/_site${{ steps.pages.outputs.base_path }}"
# Deploy to Azure Blob Static Website
deploy-test:
environment:
name: cloudyspells-test-azure
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to Azure Blob Static Website
id: download-artifact
uses: actions/download-artifact@v3
with:
name: github-pages
- name: Extract artifact
run: tar -xvf artifact.tar
- name: Login to Azure
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy to Azure Blob Static Website
uses: azure/CLI@v1
with:
inlineScript: |
ls -l
az storage blob upload-batch -d '$web' -s . --account-name cloudyghiotest --overwrite
echo "Published to: https://cloudyghiotest.z6.web.core.windows.net/"
# deploy to GitHub Pages production
deploy-prod:
if: github.ref == 'refs/heads/gh-pages'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs:
- build
- deploy-test
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1