Skip to content

Commit

Permalink
157 preflight checks build images workflows (#159)
Browse files Browse the repository at this point in the history
  • Loading branch information
akyriako authored Nov 14, 2024
1 parent 5f8cc5b commit aad7a23
Show file tree
Hide file tree
Showing 4 changed files with 180 additions and 188 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: pull-requests-preview-deployment
name: Manage Pull Request Preview Instances

on:
pull_request:
Expand All @@ -11,13 +11,16 @@ on:
concurrency: preview-${{ github.ref }}

jobs:
deploy-preview:
environment: pull-requests-preview
deploy-ephemeral-preview:
name: Deploy or Remove Ephemeral Preview
environment:
name: pull-requests-preview
url: 'https://${{ github.repository_owner }}.github.io${{ vars.DOCUSAURUS_BASE_URL }}pr-${{ github.event.pull_request.number }}'
runs-on: ubuntu-20.04

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Get Commit Hash
id: commit_hash
Expand Down
82 changes: 82 additions & 0 deletions .github/workflows/build-publish-production.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Build and Deploy Production Docker Images

on:
push:
tags:
- "v*.*.*"
workflow_dispatch:

jobs:
build-stable:
name: Build Production Artifacts
environment:
name: stable
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 'lts/*'

- name: Install NodeJS Dependencies
run: npm install

- name: Build Version Tag
id: build_version_tag
run: echo "IMAGE_SEMVER=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Build Container Image Metadata
id: meta
uses: docker/metadata-action@v5
with:
# list of Docker images to use as base name for tags
images: |
${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }}
# generate Docker tags based on the following events/attributes
tags: |
type=semver,pattern=v{{major}}.{{minor}}.{{patch}}
type=raw,value=latest

- name: Build App
env:
REACT_APP_VERSION: ${{ env.IMAGE_SEMVER }}
REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }}
REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }}
REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }}
REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }}
REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }}
REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }}
REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }}
UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }}
UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }}
UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }}
UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }}
run: npm run build

- name: Login to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.7.1

- name: Build and Push (Docker Image)
id: docker_build
uses: docker/build-push-action@v6.9.0
with:
context: ./
file: ./Dockerfile
provenance: false
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
annotations: ${{ steps.meta.outputs.annotations }}
91 changes: 91 additions & 0 deletions .github/workflows/build-publish-staging.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Build and Deploy Staging Docker Images

on:
push:
branches:
- main
paths-ignore:
- '**/README.md'
- '**/CONTRIBUTING.md'
- '**/CONFIGURATION.md'
- '**/.devcontainer/**'
- "**/.github/workflows/**"

jobs:
build-preview:
name: Build Staging Artifacts
environment:
name: preview
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 'lts/*'

- name: Install NodeJS Dependencies
run: npm install

- name: Get Commit Hash
id: commit_hash
uses: prompt/actions-commit-hash@v3

- name: Get Current Date
id: date
run: echo "today=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT

- name: Build Image Tag
id: build_image_tag
run: echo "image_version=${{ steps.date.outputs.today }}-${{github.run_number}}-${{ steps.commit_hash.outputs.short }}" >> $GITHUB_OUTPUT

- name: Build Container Image Metadata
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }}
tags: |
type=raw,value=${{ steps.build_image_tag.outputs.image_version }}
- name: Build App
env:
REACT_APP_VERSION: ${{ steps.build_image_tag.outputs.image_version }}
REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }}
REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }}
REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }}
REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }}
REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }}
REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }}
REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }}
UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }}
UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }}
UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }}
UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }}
run: npm run build

- name: Login to Container Registry
uses: docker/login-action@v3
with:
registry: ${{ vars.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.7.1

- name: Build and Push (Docker Image)
id: docker_build
uses: docker/build-push-action@v6.9.0
with:
context: ./
file: ./Dockerfile
provenance: false
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
annotations: ${{ steps.meta.outputs.annotations }}
184 changes: 0 additions & 184 deletions .github/workflows/release.yaml

This file was deleted.

0 comments on commit aad7a23

Please sign in to comment.