Deploy website to Scaleway Object Storage
Some checks failed
Deploy to Scaleway / build-and-deploy (pull_request) Has been cancelled
Some checks failed
Deploy to Scaleway / build-and-deploy (pull_request) Has been cancelled
Use Scaleway CLI and replace s3cmd. Add CDN cache purge (optional). Remove GitHub Pages workflow.
This commit is contained in:
@@ -9,7 +9,10 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
if: github.event.pull_request.merged == true
|
if: github.event.pull_request.merged == true
|
||||||
runs-on: ubuntu-latest
|
runs-on: gitea-runner
|
||||||
|
|
||||||
|
container:
|
||||||
|
image: scaleway/cli:latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
@@ -21,28 +24,23 @@ jobs:
|
|||||||
- name: Setup Hugo
|
- name: Setup Hugo
|
||||||
uses: peaceiris/actions-hugo@v2
|
uses: peaceiris/actions-hugo@v2
|
||||||
with:
|
with:
|
||||||
hugo-version: 'latest'
|
hugo-version: "latest"
|
||||||
extended: true
|
extended: true
|
||||||
|
|
||||||
- name: Build Hugo site
|
- name: Build Hugo site
|
||||||
run: hugo --minify
|
run: hugo --minify
|
||||||
|
|
||||||
- name: Install s3cmd
|
- name: Configure Scaleway CLI
|
||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
scw init access-key=${{ secrets.SCW_ACCESS_KEY }} \
|
||||||
sudo apt-get install -y s3cmd
|
secret-key=${{ secrets.SCW_SECRET_KEY }} \
|
||||||
|
default-organization-id=${{ secrets.SCW_ORGANIZATION_ID }} \
|
||||||
|
default-region=fr-par
|
||||||
|
|
||||||
- name: Configure s3cmd for Scaleway
|
- name: Deploy to Object Storage
|
||||||
run: |
|
run: |
|
||||||
cat > ~/.s3cfg << EOF
|
scw object cp public/ s3://notebook-arnodo-fr/ --recursive
|
||||||
[default]
|
|
||||||
access_key = ${{ secrets.SCW_ACCESS_KEY }}
|
|
||||||
secret_key = ${{ secrets.SCW_SECRET_KEY }}
|
|
||||||
host_base = s3.fr-par.scw.cloud
|
|
||||||
host_bucket = %(bucket)s.s3.fr-par.scw.cloud
|
|
||||||
use_https = True
|
|
||||||
EOF
|
|
||||||
|
|
||||||
- name: Deploy to Scaleway Object Storage
|
- name: Purge CDN Cache (optional)
|
||||||
run: |
|
run: |
|
||||||
s3cmd sync --delete-removed --acl-public public/ s3://${{ secrets.SCW_BUCKET_NAME }}/
|
scw edge-services pipeline purge pipeline-id=${{ secrets.SCW_PIPELINE_ID }}
|
||||||
|
|||||||
78
.github/workflows/hugo.yaml
vendored
78
.github/workflows/hugo.yaml
vendored
@@ -1,78 +0,0 @@
|
|||||||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
|
||||||
name: Deploy Hugo site to Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
# Runs on pushes targeting the default branch
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
pages: write
|
|
||||||
id-token: write
|
|
||||||
|
|
||||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
|
||||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
|
||||||
concurrency:
|
|
||||||
group: "pages"
|
|
||||||
cancel-in-progress: false
|
|
||||||
|
|
||||||
# Default to bash
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
shell: bash
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
# Build job
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
HUGO_VERSION: 0.141.0
|
|
||||||
steps:
|
|
||||||
- name: Install Hugo CLI
|
|
||||||
run: |
|
|
||||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
|
||||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
|
||||||
- name: Install Dart Sass
|
|
||||||
run: sudo snap install dart-sass
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
submodules: recursive
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: Setup Pages
|
|
||||||
id: pages
|
|
||||||
uses: actions/configure-pages@v5
|
|
||||||
- name: Install Node.js dependencies
|
|
||||||
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
|
||||||
- name: Build with Hugo
|
|
||||||
env:
|
|
||||||
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
|
|
||||||
HUGO_ENVIRONMENT: production
|
|
||||||
TZ: America/Los_Angeles
|
|
||||||
run: |
|
|
||||||
hugo \
|
|
||||||
--gc \
|
|
||||||
--minify \
|
|
||||||
--baseURL "${{ steps.pages.outputs.base_url }}/"
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-pages-artifact@v3
|
|
||||||
with:
|
|
||||||
path: ./public
|
|
||||||
|
|
||||||
# Deployment job
|
|
||||||
deploy:
|
|
||||||
environment:
|
|
||||||
name: github-pages
|
|
||||||
url: ${{ steps.deployment.outputs.page_url }}
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: build
|
|
||||||
steps:
|
|
||||||
- name: Deploy to GitHub Pages
|
|
||||||
id: deployment
|
|
||||||
uses: actions/deploy-pages@v4
|
|
||||||
Reference in New Issue
Block a user