Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring/Restructuring for Docker, Compose and Taskfile #1963

Merged
merged 35 commits into from
May 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
377048f
feat: rebuild task file and drop version generator
tboerger Apr 20, 2024
f0026b3
docs: add all snippets for docker-compose deployments
tboerger Apr 20, 2024
8b8d961
docs: move spec definition into packaging folder
tboerger Apr 20, 2024
51692c6
chore: drop comments from goreleaser
tboerger Apr 20, 2024
0a6a1be
fix: better line breaks for build task
tboerger Apr 20, 2024
b6f4bb7
fix: add email to goreleaser config
tboerger Apr 27, 2024
fa7529f
feat: enable i386 for goreleaser
tboerger Apr 27, 2024
c6b5748
ci: restructure pieplines for new compose/docker
tboerger Apr 27, 2024
d974f8d
ci: use new host for dredd tests
tboerger Apr 27, 2024
054230f
chore: add initial dockeringore config
tboerger Apr 27, 2024
41c25b9
chore: drop unused service file
tboerger Apr 27, 2024
aee0631
feat: restructure whole docker build process
tboerger Apr 27, 2024
ee42d8c
fix: rename requirements file
tboerger Apr 27, 2024
cd5f7ae
fix: disable fe tests within default test task
tboerger Apr 27, 2024
e7521ba
ci: use right port for postgres migration test
tboerger Apr 27, 2024
1f68872
ci: disable sslmode for postgres migration tests
tboerger Apr 27, 2024
dec36a0
ci: use right format for docker-compose commands
tboerger Apr 27, 2024
4dcbcba
chore: use right tasks within docker builds
tboerger Apr 27, 2024
7e3b73e
fix: use right path to build server image
tboerger Apr 27, 2024
10adc74
ci: enable docker builds for prs
tboerger Apr 27, 2024
9e26437
fix: remove copy and paste error
tboerger Apr 28, 2024
f0f7a59
feat: add proper cache layers for docker build
tboerger Apr 28, 2024
8f78b57
fix: looks like dredd requires go installed
tboerger Apr 28, 2024
137d78b
ci: cache node deps within pipelines
tboerger Apr 28, 2024
620d015
ci: add cache to dredd image build and fix goodman path
tboerger Apr 28, 2024
5050539
ci: use correct credentials for dredd tests
tboerger Apr 28, 2024
eef03ad
fix: use same style for all compose snippets
tboerger May 2, 2024
a80b30f
ci: use latest setup-node action
tboerger May 2, 2024
1444721
ci: rename dredd config files
tboerger May 3, 2024
0ecfef9
ci: run integration tests in parallel
tboerger May 3, 2024
a7b065d
fix: return string instead of func for version
tboerger May 3, 2024
dae7009
ci: execute dredd without containers
tboerger May 3, 2024
7690dda
ci: run only on semaphore repos
tboerger May 3, 2024
3f542c3
fix: install gcc within container
tboerger May 3, 2024
7fcace6
fix: need more packages within dockerfiles
tboerger May 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
web/node_modules/
vendor/
5 changes: 2 additions & 3 deletions .dredd/dredd.dev.yml → .dredd/dredd.docker.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
dry-run: null
hookfiles: ./.dredd/compiled_hooks
language: go
#server: context=dev task dc:up
server-wait: 240
server-wait: 5
init: false
custom: {}
names: false
Expand All @@ -28,4 +27,4 @@ hooks-worker-handler-host: 0.0.0.0
hooks-worker-handler-port: 61321
config: ./.dredd/dredd.yml
blueprint: api-docs.yml
endpoint: 'http://semaphore_ci:3000'
endpoint: 'http://server:3000'
3 changes: 1 addition & 2 deletions .dredd/dredd.local.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
dry-run: null
hookfiles: ./.dredd/compiled_hooks
language: go
#server: context=dev task dc:up
server-wait: 240
server-wait: 5
init: false
custom: {}
names: false
Expand Down
6 changes: 3 additions & 3 deletions .dredd/dredd.yml → .dredd/dredd.testing.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
dry-run: null
hookfiles: ./.dredd/compiled_hooks
language: go
#server: context=dev task dc:up
server-wait: 240
server: ./semaphore server --config .dredd/config.json
server-wait: 5
init: false
custom: {}
names: false
Expand All @@ -28,4 +28,4 @@ hooks-worker-handler-host: 0.0.0.0
hooks-worker-handler-port: 61321
config: ./.dredd/dredd.yml
blueprint: api-docs.yml
endpoint: 'http://semaphore_ci:3000'
endpoint: 'http://localhost:3000'
3 changes: 1 addition & 2 deletions .dredd/dredd.windows.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
dry-run: null
hookfiles: ./.dredd/compiled_hooks.exe
language: go
#server: context=dev task dc:up
server-wait: 240
server-wait: 5
init: false
custom: {}
names: false
Expand Down
134 changes: 93 additions & 41 deletions .github/workflows/beta.yml
Original file line number Diff line number Diff line change
@@ -1,75 +1,127 @@
name: Beta
on:

'on':
push:
tags:
- v*-beta

jobs:
pre-release:
runs-on: [ubuntu-latest]
prerelease:
runs-on: ubuntu-latest

steps:
- uses: actions/setup-go@v3
with: { go-version: '1.21' }
- name: Checkout source
uses: actions/checkout@v4

- uses: actions/setup-node@v3
with: { node-version: '16' }
- name: Setup golang
uses: actions/setup-go@v5
with:
go-version: '^1.21.0'

- run: go install github.com/go-task/task/v3/cmd/task@latest
- name: Setup nodejs
uses: actions/setup-node@v4
with:
node-version: '16'
cache: 'npm'
cache-dependency-path: web/package-lock.json

- run: sudo apt update && sudo apt-get install rpm
- name: Install go-task
run: |
go install github.com/go-task/task/v3/cmd/task@latest

- uses: actions/checkout@v3
- name: Install rpm
run: |
sudo apt update && sudo apt-get install rpm

- run: task deps
- name: Install deps
run: |
task deps

- run: |
echo ${{ secrets.GPG_KEY }} | tr " " "\n" | base64 -d | gpg --import --batch
- name: Import gnupg
run: |
echo "${{ secrets.GPG_KEY }}" | tr " " "\n" | base64 -d | gpg --import --batch
gpg --sign -u "58A7 CC3D 8A9C A2E5 BB5C 141D 4064 23EA F814 63CA" --pinentry-mode loopback --yes --batch --passphrase "${{ secrets.GPG_PASS }}" --output unlock.sig --detach-sign README.md
rm -f unlock.sig

- run: git reset --hard

- run: GITHUB_TOKEN=${{ secrets.GH_TOKEN }} task release:prod
- name: Reset repo
run: |
git reset --hard

- name: Run release
run: |
GITHUB_TOKEN=${{ secrets.GH_TOKEN }} task release:prod

deploy-beta:
runs-on: [ubuntu-latest]
steps:
- uses: actions/setup-go@v3
with: { go-version: '1.21' }

- run: go install github.com/go-task/task/v3/cmd/task@latest
runs-on: ubuntu-latest
if: github.repository_owner == 'semaphoreui'

- uses: actions/checkout@v3

- run: context=prod task docker:test
steps:
- name: Checkout source
uses: actions/checkout@v4

- uses: docker/setup-qemu-action@v2
- name: Setup qemu
id: qemu
uses: docker/setup-qemu-action@v3

- uses: docker/setup-buildx-action@v2
- name: Setup buildx
id: buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v2
- name: Hub login
uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASS }}

- name: Build and push
uses: docker/build-push-action@v3
- name: Server meta
id: server
uses: docker/metadata-action@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
images: |
semaphoreui/semaphore
labels: |
org.opencontainers.image.vendor=SemaphoreUI
maintainer=Semaphore UI <[email protected]>
tags: |
type=raw,value=${{ github.ref_name }}
flavor: |
latest=false

- name: Server build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: deployment/docker/server/Dockerfile
platforms: linux/amd64,linux/arm64
file: ./deployment/docker/prod/buildx.Dockerfile
push: true
tags: semaphoreui/semaphore:beta,semaphoreui/semaphore:${{ github.ref_name }}
push: ${{ github.event_name != 'pull_request' }}
labels: ${{ steps.server.outputs.labels }}
tags: ${{ steps.server.outputs.tags }}



- name: Build and push runner
uses: docker/build-push-action@v3
- name: Runner meta
id: runner
uses: docker/metadata-action@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
images: |
semaphoreui/runner
labels: |
org.opencontainers.image.vendor=SemaphoreUI
maintainer=Semaphore UI <[email protected]>
tags: |
type=raw,value=${{ github.ref_name }}
flavor: |
latest=false

- name: Runner build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
file: deployment/docker/runner/Dockerfile
platforms: linux/amd64,linux/arm64
file: ./deployment/docker/prod/runner.buildx.Dockerfile
push: true
tags: semaphoreui/runner:beta,semaphoreui/runner:${{ github.ref_name }}
push: ${{ github.event_name != 'pull_request' }}
labels: ${{ steps.runner.outputs.labels }}
tags: ${{ steps.runner.outputs.tags }}