Skip to content

Bump faraday from 2.7.4 to 2.14.1 (#60) #80

Bump faraday from 2.7.4 to 2.14.1 (#60)

Bump faraday from 2.7.4 to 2.14.1 (#60) #80

Workflow file for this run

name: Build and Deploy
on:
push:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set environment variables
id: set-env
run: |
# Set environment based on branch
if [[ $GITHUB_REF == 'refs/heads/main' ]]; then
echo "ENVIRONMENT=production" >> $GITHUB_ENV
echo "S3_BUCKET=docs.cloudmailin.com" >> $GITHUB_ENV
echo "ALGOLIA_INDEX_VALUE=${{ secrets.ALGOLIA_INDEX }}" >> $GITHUB_ENV
elif [[ $GITHUB_REF == 'refs/heads/staging' ]]; then
echo "ENVIRONMENT=staging" >> $GITHUB_ENV
echo "S3_BUCKET=docs-staging.cloudmailin.com" >> $GITHUB_ENV
echo "ALGOLIA_INDEX_VALUE=${{ secrets.ALGOLIA_INDEX }}" >> $GITHUB_ENV
else
echo "ENVIRONMENT=staging" >> $GITHUB_ENV
echo "ALGOLIA_INDEX_VALUE=" >> $GITHUB_ENV
fi
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and cache Docker image
uses: docker/build-push-action@v6
with:
context: .
push: false
load: true
tags: docs-cloudmailin:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Build documentation
env:
ALGOLIA_APPLICATION_ID: ${{ secrets.ALGOLIA_APPLICATION_ID }}
ALGOLIA_API_KEY: ${{ secrets.ALGOLIA_API_KEY }}
ALGOLIA_INDEX: ${{ env.ALGOLIA_INDEX_VALUE }}
ENVIRONMENT: ${{ env.ENVIRONMENT }}
run: |
docker run --rm -v $(pwd):/app \
-e ALGOLIA_APPLICATION_ID \
-e ALGOLIA_API_KEY \
-e ALGOLIA_INDEX \
-e ENVIRONMENT \
docs-cloudmailin bundle exec nanoc compile -e ${{ env.ENVIRONMENT }}
- name: Run validation checks
run: |
docker run --rm -v $(pwd):/app \
docs-cloudmailin bundle exec nanoc check --deploy
# Only deploy if on main or staging branch
- name: Configure AWS credentials
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging'
uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/GitHubActions-docs-github-oidc
role-session-name: GitHubActions-docs-deploy
aws-region: us-east-1
- name: Deploy to S3
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging'
run: |
aws s3 sync ./output s3://${{ env.S3_BUCKET }} --delete