Update Docker workflows to support multi-platform builds for arm64 #2227
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Push Test Images to Docker Hub and GitHub Container Registry | |
on: | |
push: | |
branches: | |
- "master" | |
jobs: | |
generate-build-number: | |
runs-on: ubuntu-latest | |
outputs: | |
build_number: ${{ steps.buildnumber.outputs.build_number }} | |
steps: | |
- name: Generate build number | |
id: buildnumber | |
uses: onyxmueller/[email protected] | |
with: | |
token: ${{secrets.github_token}} | |
- run: echo "Build number is ${{ steps.buildnumber.outputs.build_number }}" | |
llm-docker-image-deploy: | |
needs: generate-build-number | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
steps: | |
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/llm | |
ghcr.io/oneuptime/llm | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
# - name: Setup Git LFS | |
# run: git lfs install | |
# # Cannot do this, no space on the gitHub standard runner. We need to use the large runner which is selfhosted | |
# - name: Download the Model from Hugging Face | |
# run: mkdir -p ./LLM/Models && cd ./LLM/Models && git clone https://${{ secrets.HUGGING_FACE_USERNAME }}:${{ secrets.HUGGING_FACE_PASSWORD }}@huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy nginx. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./LLM/Dockerfile | |
context: ./LLM | |
# arm64 is not supported by the base image of the LLM | |
platforms: linux/amd64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
nginx-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/nginx | |
ghcr.io/oneuptime/nginx | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy nginx. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Nginx/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
e2e-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/e2e | |
ghcr.io/oneuptime/e2e | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy e2e. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./E2E/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
test-server-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/test-server | |
ghcr.io/oneuptime/test-server | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy test-server. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./TestServer/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
otel-collector-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/otel-collector | |
ghcr.io/oneuptime/otel-collector | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy otel-collector. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./OTelCollector/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
isolated-vm-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/isolated-vm | |
ghcr.io/oneuptime/isolated-vm | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy isolated-vm. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./IsolatedVM/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
home-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/home | |
ghcr.io/oneuptime/home | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy isolated-vm. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Home/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
status-page-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/status-page | |
ghcr.io/oneuptime/status-page | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy status-page. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./StatusPage/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
test-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/test | |
ghcr.io/oneuptime/test | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy test. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Tests/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
ingestor-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/ingestor | |
ghcr.io/oneuptime/ingestor | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy ingestor. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Ingestor/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
probe-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/probe | |
ghcr.io/oneuptime/probe | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy probe. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Probe/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
haraka-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/haraka | |
ghcr.io/oneuptime/haraka | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy haraka. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Haraka/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
dashboard-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/dashboard | |
ghcr.io/oneuptime/dashboard | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy dashboard. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Dashboard/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
admin-dashboard-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/admin-dashboard | |
ghcr.io/oneuptime/admin-dashboard | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy admin-dashboard. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./AdminDashboard/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
app-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/app | |
ghcr.io/oneuptime/app | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy app. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./App/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
api-reference-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/api-reference | |
ghcr.io/oneuptime/api-reference | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy app. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./APIReference/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
accounts-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/accounts | |
ghcr.io/oneuptime/accounts | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy accounts. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Accounts/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
worker-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/worker | |
ghcr.io/oneuptime/worker | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy accounts. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Worker/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.copilot-docker-image-deploybuild_number}} | |
copilot-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/copilot | |
ghcr.io/oneuptime/copilot | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy accounts. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Copilot/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
workflow-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/workflow | |
ghcr.io/oneuptime/workflow | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy accounts. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Workflow/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
docs-docker-image-deploy: | |
needs: generate-build-number | |
runs-on: ubuntu-latest | |
steps: | |
- name: Docker Meta | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: | | |
oneuptime/docs | |
ghcr.io/oneuptime/docs | |
tags: | | |
type=raw,value=test,enable=true | |
type=semver,value=7.0.${{needs.generate-build-number.outputs.build_number}}-test,pattern={{version}},enable=true | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.ref }} | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Generate Dockerfile from Dockerfile.tpl | |
run: npm run prerun | |
# Build and deploy accounts. | |
- name: Login to Docker Hub | |
uses: docker/[email protected] | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/[email protected] | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
file: ./Docs/Dockerfile | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: | | |
GIT_SHA=${{ github.sha }} | |
APP_VERSION=7.0.${{needs.generate-build-number.outputs.build_number}} | |
test-helm-chart: | |
runs-on: ubuntu-latest | |
needs: [llm-docker-image-deploy, copilot-docker-image-deploy, docs-docker-image-deploy, worker-docker-image-deploy, workflow-docker-image-deploy, isolated-vm-docker-image-deploy, home-docker-image-deploy, api-reference-docker-image-deploy, test-server-docker-image-deploy, test-docker-image-deploy, ingestor-docker-image-deploy, probe-docker-image-deploy, haraka-docker-image-deploy, dashboard-docker-image-deploy, admin-dashboard-docker-image-deploy, app-docker-image-deploy, accounts-docker-image-deploy, otel-collector-docker-image-deploy, status-page-docker-image-deploy, nginx-docker-image-deploy, e2e-docker-image-deploy] | |
env: | |
CI_PIPELINE_ID: ${{github.run_number}} | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- run: cd HelmChart && cd Tests && bash index.sh | |
test-e2e-test-saas: | |
runs-on: ubuntu-latest | |
needs: [test-helm-chart] | |
env: | |
CI_PIPELINE_ID: ${{github.run_number}} | |
steps: | |
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- run: npm run prerun && bash ./Tests/Scripts/change-release-to-test-tag.sh | |
- name: Start Server with release tag | |
run: npm run start | |
- name: Wait for server to start | |
run: bash ./Tests/Scripts/status-check.sh http://localhost | |
- name: Run E2E Tests. Run docker container e2e in docker compose file | |
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1) | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
# Run this on failure | |
if: failure() | |
with: | |
# Name of the artifact to upload. | |
# Optional. Default is 'artifact' | |
name: test-results | |
# A file, directory or wildcard pattern that describes what to upload | |
# Required. | |
path: | | |
./E2E | |
# Duration after which artifact will expire in days. 0 means using default retention. | |
# Minimum 1 day. | |
# Maximum 90 days unless changed from the repository settings page. | |
# Optional. Defaults to repository settings. | |
retention-days: 7 | |
test-e2e-test-self-hosted: | |
runs-on: ubuntu-latest | |
# After all the jobs runs | |
needs: [test-helm-chart] | |
env: | |
CI_PIPELINE_ID: ${{github.run_number}} | |
steps: | |
# Docker compose needs a lot of space to build images, so we need to free up some space first in the GitHub Actions runner | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@main | |
with: | |
# this might remove tools that are actually needed, | |
# if set to "true" but frees about 6 GB | |
tool-cache: false | |
android: true | |
dotnet: true | |
haskell: true | |
large-packages: true | |
docker-images: true | |
swap-storage: true | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 18.3.0 | |
- run: npm run prerun && bash ./Tests/Scripts/change-release-to-test-tag.sh | |
- name: Start Server with release tag | |
run: npm run start | |
- name: Wait for server to start | |
run: bash ./Tests/Scripts/status-check.sh http://localhost | |
- name: Run E2E Tests. Run docker container e2e in docker compose file | |
run: export $(grep -v '^#' config.env | xargs) && docker compose -f docker-compose.dev.yml up --exit-code-from e2e --abort-on-container-exit e2e || (docker compose -f docker-compose.dev.yml logs e2e && exit 1) | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
# Run this on failure | |
if: failure() | |
with: | |
# Name of the artifact to upload. | |
# Optional. Default is 'artifact' | |
name: test-results | |
# A file, directory or wildcard pattern that describes what to upload | |
# Required. | |
path: | | |
./E2E | |
# Duration after which artifact will expire in days. 0 means using default retention. | |
# Minimum 1 day. | |
# Maximum 90 days unless changed from the repository settings page. | |
# Optional. Defaults to repository settings. | |
retention-days: 7 | |