Skip to content

refactor(server): change the server module name #59

refactor(server): change the server module name

refactor(server): change the server module name #59

Workflow file for this run

name: Server
on:
pull_request:
paths:
- '.github/workflows/server.yml'
- 'server/**'
push:
branches:
- main
tags:
- "v*"
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22'
- name: Go to server directory
run: cd server
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
working-directory: server
args: --timeout 5m
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v3
with:
go-version: '1.22'
- name: Run tests
run: |
cd server
go test -v ./...
build-docker-bundle:
name: Build Docker bundled
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
matrix:
app-kind: [main, kernel]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Setup metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/vertex-bundle${{ matrix.app-kind != 'main' && format('-{0}', matrix.app-kind) || '' }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
context: .
file: server/docker/bundle.Dockerfile
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm
no-cache: true
build-args: |
APP_KIND=${{ matrix.app-kind }}
build-docker-microservices:
name: Build Docker microservices
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
matrix:
app-id:
- admin
- auth
- containers
- logs
- monitoring
- reverseproxy
- sql
- tunnels
app-kind:
- main
include:
- app-id: containers
app-kind: kernel
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Setup metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository_owner }}/vertex-${{ matrix.app-id }}${{ matrix.app-kind != 'main' && format('-{0}', matrix.app-kind) || '' }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: ${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v') }}
context: .
file: server/docker/micro.Dockerfile
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64,linux/arm
no-cache: true
build-args: |
APP_ID=${{ matrix.app-id }}
APP_KIND=${{ matrix.app-kind }}
trigger-docapi:
name: Trigger docapi
runs-on: ubuntu-latest
needs:
- build-docker-bundle
- build-docker-microservices
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
steps:
- name: Trigger docapi
run: |
curl \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Content-Type: application/javascript" \
-H "Authorization: Bearer ${{ secrets.PAT }}" \
https://api.github.com/repos/vertex-center/openapi/dispatches \
-d '{"event_type":"docapi","client_payload":{"ref":"${{ github.ref }}"}}'
promote-docker:
name: Promote Docker images
runs-on: ubuntu-latest
needs:
- build-docker-bundle
- build-docker-microservices
if: startsWith(github.ref, 'refs/tags/v')
permissions:
contents: read
packages: write
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Promote images
run: |
IMAGES="vertex-bundle vertex-bundle-kernel vertex-admin vertex-auth vertex-containers vertex-containers-kernel vertex-logs vertex-monitoring vertex-reverseproxy vertex-sql vertex-tunnels"
for IMAGE in $IMAGES; do
echo "Promoting $IMAGE:${{ format('{0}', github.ref_name) }} to latest"
docker pull ghcr.io/${{ github.repository_owner }}/"$IMAGE":${{ format('{0}', github.ref_name) }}
docker tag ghcr.io/${{ github.repository_owner }}/"$IMAGE":${{ format('{0}', github.ref_name) }} ghcr.io/${{ github.repository_owner }}/"$IMAGE":latest
docker push ghcr.io/${{ github.repository_owner }}/"$IMAGE":latest
done