ci(runners): test docker runner

This commit is contained in:
Denis Gukov 2023-09-13 02:42:48 +02:00
parent 759da0cd56
commit cdd2938645
3 changed files with 97 additions and 105 deletions

View File

@ -7,94 +7,94 @@ on:
branches: [develop]
jobs:
build-local:
runs-on: [ubuntu-latest]
steps:
- uses: actions/setup-go@v3
with: { go-version: 1.19 }
- uses: actions/setup-node@v3
with: { node-version: '16' }
- run: go install github.com/go-task/task/v3/cmd/task@latest
- uses: actions/checkout@v3
- run: task deps
- run: task compile
- name: Test that compile did not create/modify untracked files
run: git diff --exit-code --stat -- . ':(exclude)web/package.json' ':(exclude)web/package-lock.json' ':(exclude)go.mod' ':(exclude)go.sum'
- run: task build:local GOOS= GOARCH=
- run: task test
- uses: actions/upload-artifact@master
with:
name: semaphore
path: bin/semaphore
retention-days: 1
test-db-migration:
runs-on: [ubuntu-latest]
needs: [build-local]
steps:
- uses: shogo82148/actions-setup-mysql@v1
with:
mysql-version: '5.6'
- uses: Harmon758/postgresql-action@v1
with:
postgresql version: '11'
postgresql db: 'circle_test'
postgresql user: 'root'
postgresql password: 'pwd'
- uses: actions/download-artifact@master
with:
name: semaphore
- run: "cat > config.json <<EOF\n{\n\t\"postgres\": {\n\t\t\"host\": \"127.0.0.1:5432\"\
,\n\t\t\"options\":{\"sslmode\":\"disable\"}\
,\n\t\t\"user\": \"root\",\n\t\t\"pass\": \"pwd\",\n\t\t\"name\": \"circle_test\"\
\n\t},\n\t\"dialect\": \"postgres\",\n\t\"email_alert\": false\n}\nEOF\n"
- run: chmod +x ./semaphore && ./semaphore migrate --config config.json
- run: "cat > config.json <<EOF\n{\n\t\"mysql\": {\n\t\t\"host\": \"127.0.0.1:3306\"\
,\n\t\t\"user\": \"root\",\n\t\t\"pass\": \"\",\n\t\t\"name\": \"circle_test\"\
\n\t},\n\t\"dialect\": \"mysql\",\n\t\"email_alert\": false\n}\nEOF\n"
- run: chmod +x ./semaphore && ./semaphore migrate --config config.json
- run: "cat > config.json <<EOF\n{\n\t\"bolt\": {\n\t\t\"host\": \"/tmp/database.bolt\"\
\n\t},\n\t\"dialect\": \"bolt\",\n\t\"email_alert\": false\n}\nEOF\n"
- run: chmod +x ./semaphore && ./semaphore migrate --config config.json
test-integration:
runs-on: [ubuntu-latest]
needs: [test-db-migration]
steps:
- uses: actions/setup-go@v3
with: { go-version: 1.19 }
- run: go install github.com/go-task/task/v3/cmd/task@latest
- uses: actions/checkout@v3
- run: context=ci prefix=.postgres task dc:up
- run: context=ci prefix=.bolt task dc:up
- run: context=ci prefix=.mysql task dc:up
# build-local:
# runs-on: [ubuntu-latest]
# steps:
# - uses: actions/setup-go@v3
# with: { go-version: 1.19 }
#
# - uses: actions/setup-node@v3
# with: { node-version: '16' }
#
# - run: go install github.com/go-task/task/v3/cmd/task@latest
#
# - uses: actions/checkout@v3
#
# - run: task deps
#
# - run: task compile
#
# - name: Test that compile did not create/modify untracked files
# run: git diff --exit-code --stat -- . ':(exclude)web/package.json' ':(exclude)web/package-lock.json' ':(exclude)go.mod' ':(exclude)go.sum'
#
# - run: task build:local GOOS= GOARCH=
#
# - run: task test
#
# - uses: actions/upload-artifact@master
# with:
# name: semaphore
# path: bin/semaphore
# retention-days: 1
#
#
# test-db-migration:
# runs-on: [ubuntu-latest]
# needs: [build-local]
# steps:
# - uses: shogo82148/actions-setup-mysql@v1
# with:
# mysql-version: '5.6'
#
# - uses: Harmon758/postgresql-action@v1
# with:
# postgresql version: '11'
# postgresql db: 'circle_test'
# postgresql user: 'root'
# postgresql password: 'pwd'
#
# - uses: actions/download-artifact@master
# with:
# name: semaphore
#
# - run: "cat > config.json <<EOF\n{\n\t\"postgres\": {\n\t\t\"host\": \"127.0.0.1:5432\"\
# ,\n\t\t\"options\":{\"sslmode\":\"disable\"}\
# ,\n\t\t\"user\": \"root\",\n\t\t\"pass\": \"pwd\",\n\t\t\"name\": \"circle_test\"\
# \n\t},\n\t\"dialect\": \"postgres\",\n\t\"email_alert\": false\n}\nEOF\n"
#
# - run: chmod +x ./semaphore && ./semaphore migrate --config config.json
#
# - run: "cat > config.json <<EOF\n{\n\t\"mysql\": {\n\t\t\"host\": \"127.0.0.1:3306\"\
# ,\n\t\t\"user\": \"root\",\n\t\t\"pass\": \"\",\n\t\t\"name\": \"circle_test\"\
# \n\t},\n\t\"dialect\": \"mysql\",\n\t\"email_alert\": false\n}\nEOF\n"
#
# - run: chmod +x ./semaphore && ./semaphore migrate --config config.json
#
# - run: "cat > config.json <<EOF\n{\n\t\"bolt\": {\n\t\t\"host\": \"/tmp/database.bolt\"\
# \n\t},\n\t\"dialect\": \"bolt\",\n\t\"email_alert\": false\n}\nEOF\n"
#
# - run: chmod +x ./semaphore && ./semaphore migrate --config config.json
#
#
# test-integration:
# runs-on: [ubuntu-latest]
# needs: [test-db-migration]
# steps:
# - uses: actions/setup-go@v3
# with: { go-version: 1.19 }
#
# - run: go install github.com/go-task/task/v3/cmd/task@latest
#
# - uses: actions/checkout@v3
#
# - run: context=ci prefix=.postgres task dc:up
# - run: context=ci prefix=.bolt task dc:up
# - run: context=ci prefix=.mysql task dc:up
deploy-dev:
runs-on: [ubuntu-latest]
needs: [test-integration]
if: github.ref == 'refs/heads/develop'
# needs: [test-integration]
# if: github.ref == 'refs/heads/develop'
steps:
- uses: actions/setup-go@v3
with: { go-version: 1.19 }
@ -113,14 +113,14 @@ jobs:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}
- name: Build and push
uses: docker/build-push-action@v3
with:
context: .
platforms: linux/amd64,linux/arm64
file: ./deployment/docker/prod/buildx.Dockerfile
push: true
tags: semaphoreui/semaphore:develop
# - name: Build and push
# uses: docker/build-push-action@v3
# with:
# context: .
# platforms: linux/amd64,linux/arm64
# file: ./deployment/docker/prod/buildx.Dockerfile
# push: true
# tags: semaphoreui/semaphore:develop
- name: Build and push runner
uses: docker/build-push-action@v3
@ -131,15 +131,3 @@ jobs:
push: true
tags: semaphoreui/runner:develop
# test-docker:
# runs-on: [ubuntu-latest]
# steps:
# - uses: actions/setup-go@v3
# with: { go-version: 1.19 }
# - run: go install github.com/go-task/task/v3/cmd/task@latest
# - uses: actions/checkout@v3
# - run: context=prod task docker:test

View File

@ -11,5 +11,6 @@ EOF
echo "--> Install Semaphore entrypoint wrapper script"
mv ./deployment/docker/common/semaphore-wrapper /usr/local/bin/semaphore-wrapper
mv ./deployment/docker/common/runner-wrapper /usr/local/bin/runner-wrapper
task deps
chmod -R 0777 /go

View File

@ -19,3 +19,6 @@ chmod +x /usr/local/bin/semaphore
mv ./deployment/docker/common/semaphore-wrapper /usr/local/bin/semaphore-wrapper
chown 1001:0 /usr/local/bin/semaphore-wrapper
mv ./deployment/docker/common/runner-wrapper /usr/local/bin/runner-wrapper
chown 1001:0 /usr/local/bin/runner-wrapper