Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Fix Action

Fix Action #33

name: Deploy blog
on:
push:
branches:
- feature*
tags:
- '*'
jobs:
build-and-package:
runs-on: ubuntu-latest
env:
BRANCH_NAME: ${{ github.ref_name }}
PACKAGE_NAME: docs-sp-${{ github.ref_name }}.tar.gz
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 9.1.1
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 20
cache: pnpm
- name: Install Deps
run: pnpm install --no-frozen-lockfile
- name: Build Blog
env:
NODE_OPTIONS: --max_old_space_size=8192
run: pnpm run build:webpack
- name: Compress Build Output (tar.gz)
run: tar -czvf $PACKAGE_NAME -C dist .
- name: Upload site pack to S3
uses: BetaHuhn/do-spaces-action@v2
with:
access_key: ${{ vars.AWS_ACCESS_KEY_ID}}
secret_key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
space_name: 'docs-sp'
space_region: 'nyc3'
source: ${{ env.PACKAGE_NAME }}
out_dir: 'html/'
overwrite: true
check-digitalocean-secrets:
name: Check if Digitalocean registry information was set on secrets
needs:
- build-and-package
runs-on: ubuntu-latest
outputs:
is_have_secrets: ${{ steps.check_digitalocean_secrets_job.outputs.is_have_secrets }}
steps:
- id: check_digitalocean_secrets_job
run: |
if [[ "${{ vars.DIGITALOCEAN_REGISTRY }}" != "" && \
"${{ vars.DOCKER_REPO_DOCS_SP }}" != "" && \
"${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}" != "" ]]; \
then
echo "Secrets to use DigitalOcean container registry are configured in the repo"
echo "is_have_secrets=true" >> $GITHUB_OUTPUT
else
echo "Secrets to use DigitalOcean container registry were not configured in the repo"
echo "is_have_secrets=false" >> $GITHUB_OUTPUT
fi
build-nginx-image:
name: Build and Push Nginx Image
runs-on: ubuntu-latest
needs:
- check-digitalocean-secrets
if: needs.check-digitalocean-secrets.outputs.is_have_secrets == 'true'
env:
DEFAULT_BRANCH: feature-1636-pack-doc-2
MAIN_DOMAIN: docs1.dev.solopcloud.com
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Create download directory
run: mkdir -p s3-downloads
- name: Download from DigitalOcean Spaces
env:
AWS_ACCESS_KEY_ID: ${{ vars.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
echo "Descargando archivos de docs-sp/html..."
aws s3 sync \
s3://docs-sp/html/ \
s3-downloads/ \
--endpoint-url https://nyc3.digitaloceanspaces.com \
--no-progress
- name: show-directory
run: ls -alh s3-downloads
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to DigitalOcean Container Registry
uses: docker/login-action@v3
with:
registry: registry.digitalocean.com
username: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
password: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }}
- name: Build and push Nginx image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ vars.DIGITALOCEAN_REGISTRY }}/${{ vars.DOCKER_REPO_DOCS_SP }}:main
file: ./Dockerfile
build-args: |
DEFAULT_BRANCH=${{ env.DEFAULT_BRANCH }}
MAIN_DOMAIN=${{ env.MAIN_DOMAIN }}