add adapter ci

This commit is contained in:
2025-03-23 18:16:19 +01:00
parent 8d27d31968
commit d9d565e0ee
5 changed files with 142 additions and 4 deletions

31
.github/workflows/db_adapter_ci.yml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Frontend Continuous Integration
on:
pull_request:
paths:
- "apps/db-adapter**"
jobs:
golangci:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.24'
cache: false
- name: golangci-lint
uses: golangci/golangci-lint-action@v4
with:
version: latest
working-directory: 'apps/db-adapter'
test:
uses: ./.github/workflows/go_test.yml
needs: golangci
with:
working-directory: 'apps/db-adapter'
build:
needs: test
uses: ./.github/workflows/docker_build.yml
with:
working-directory: 'apps/db-adapter'
service-name: 'gheritage-db-adapter'

54
.github/workflows/docker_build.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: Release to Docker Hub
on:
workflow_call:
inputs:
service-name:
required: true
type: string
working-directory:
required: true
type: string
jobs:
docker:
name: Build and Push Backend image to Docker Hub
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
id: create_image_tag
with:
script: |
if(github.ref == 'refs/heads/main') {
return 'latest';
} else if(context.issue.number) {
return "pr" + context.issue.number;
} else {
return "pr" + (
await github.rest.repos.listPullRequestsAssociatedWithCommit({
commit_sha: context.sha,
owner: context.repo.owner,
repo: context.repo.repo,
})
).data[0].number;
}
result-encoding: string
- name: Image tag
run: echo '${{steps.create_image_tag.outputs.result}}'
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
context: "{{defaultContext}}:${{ inputs.working-directory }}"
tags: vcscsvcscs/${{ inputs.service-name }}:${{steps.create_image_tag.outputs.result}}
platforms: linux/amd64, linux/arm64

35
.github/workflows/go_test.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Go Test
on:
workflow_call:
inputs:
working-directory:
required: true
type: string
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go 1.24.x'
uses: actions/setup-go@v5
with:
go-version: '1.24.1'
- name: Display Go version
run: go version
- name: Install dependencies
run: |
go get ./${{ inputs.working-directory }}/...
- name: Run tests
run: |
go test ./${{ inputs.working-directory }}/... -json > TestResults.json
- name: Upload Go test results
uses: actions/upload-artifact@v4
with:
name: Go-Test-results
path: TestResults.json

View File

@@ -2,14 +2,14 @@ name: Frontend Continuous Integration
on:
pull_request:
paths:
- "app/**"
- "apps/app**"
jobs:
lint:
uses: ./.github/workflows/svelte_lint.yml
with:
working-directory: 'app'
working-directory: 'apps/app'
build:
needs: lint
uses: ./.github/workflows/svelte_test.yml
with:
working-directory: 'app'
working-directory: 'apps/app'