Skip to content

Improve description of deployment process #394

Improve description of deployment process

Improve description of deployment process #394

Workflow file for this run

name: CI Build
on:
push:
branches:
- main
pull_request:
jobs:
build:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-build
cancel-in-progress: true
env:
EXASOL_VERSION: 7.1.22
steps:
- name: Check out code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 1.19
id: go
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
cache: "maven"
- name: Cache go modules
uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
${{ runner.os }}-go-
- name: Get npm cache directory
id: npm-cache-dir
run: |
echo "::set-output name=dir::$(npm config get cache)"
- uses: actions/cache@v3
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Enable testcontainer reuse
run: echo 'testcontainers.reuse.enable=true' > "$HOME/.testcontainers.properties"
- name: Install dependencies
run: |
go get -t ./...
echo Revert go.sum modification by previous "go get"
go mod tidy
- name: Check generated code
run: |
go generate ./...
if [[ `git status --porcelain` ]]; then
echo "Project files did change:\n"
git --no-pager diff
exit 1
else
echo "Generated code is up-to-date"
fi
- name: Build
run: |
go build ./...
go build -o extension-manager cmd/main.go
- name: Unit tests
run: |
go test -v -p 1 -count 1 -short ./...
- name: Integration tests
run: |
# -p 1 tells go not to run the tests in parallel. See the developers_guide.
go test -v -p 1 -count 1 -coverprofile=coverage.out ./...
- name: Prepare testing extension
run: cd ./extension-manager-integration-test-java/testing-extension && npm ci
- name: Build and test integration test framework
run: mvn --batch-mode clean verify -Dcom.exasol.dockerdb.image=$EXASOL_VERSION -DtrimStackTrace=false
env:
EXASOL_VERSION: ${{ env.EXASOL_VERSION }}
- name: Build and test registry infrastructure
run: |
cd registry
echo "export const CONFIG = { owner: '[email protected]' }" > lib/config.ts
npm ci
npm run test
- name: Prepare SonarCloud scan
# Without this step, Sonar will fail with this error:
# "Maven project detected. You should run the goal 'org.sonarsource.scanner.maven:sonar' during build rather than using this GitHub Action."
run: rm ./pom.xml
- name: SonarCloud Scan
uses: SonarSource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
- name: Upload executable
uses: actions/upload-artifact@v3
with:
name: extension-manager binary
path: extension-manager
if-no-files-found: error
retention-days: 5
trace-requirements:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-trace-requirements
cancel-in-progress: true
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Cache OpenFastTrace
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: oft-${{ hashFiles('ci/trace-requirements.sh') }}
restore-keys: |
oft-${{ hashFiles('ci/trace-requirements.sh') }}
oft
- name: Run OpenFastTrace
run: ./ci/trace-requirements.sh
static-code-analysis-go:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-static-code-analysis-go
cancel-in-progress: true
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.53.3
args: --timeout=15m