Deploy website to Scaleway Object Storage
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:
darnodo
2025-11-19 15:36:06 +01:00
parent d31d9e8eb3
commit 5460352a9b
2 changed files with 20 additions and 100 deletions

View File

@@ -9,40 +9,38 @@ 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
uses: actions/checkout@v4 uses: actions/checkout@v4
with: with:
submodules: recursive submodules: recursive
fetch-depth: 0 fetch-depth: 0
- 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 }} \
- name: Configure s3cmd for Scaleway default-region=fr-par
- 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 }} - name: Purge CDN Cache (optional)
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
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 }}

View File

@@ -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