Skip to content

Fix build.

Fix build. #65

Workflow file for this run

name: Release
concurrency: build
on:
push:
tags:
- "*"
jobs:
build_test:
runs-on: ubuntu-latest
steps:
- name: Prepare - Checkout
uses: actions/[email protected]
- name: Prepare - Inject short Variables
uses: rlespinasse/[email protected]
- name: Prepare - Setup QEMU
uses: docker/[email protected]
- name: Prepare - Setup Docker Buildx
uses: docker/[email protected]
- name: Prepare - Setup Node
uses: actions/[email protected]
with:
node-version: 18
- name: Build - BUILD
uses: docker/[email protected]
with:
load: true
build-args: "SQUIDEX__BUILD__VERSION=${{ env.GITHUB_REF_SLUG }},SQUIDEX__RUNTIME__VERSION=${{ env.GITHUB_REF_SLUG }}"
cache-from: type=gha
cache-to: type=gha,mode=max
tags: squidex-local
- name: Test - Start Compose
run: docker compose up -d
working-directory: tools/TestSuite
- name: Test - RUN
uses: kohlerdominik/[email protected]
with:
image: mcr.microsoft.com/dotnet/sdk:8.0
environment: |
CONFIG__BACKUPURL=http://localhost:5000
CONFIG__WAIT=60
CONFIG__SERVER__URL=http://localhost:8080
WEBHOOKCATCHER__HOST__ENDPOINT=webhookcatcher
default_network: host
options: --name test1
volumes: ${{ github.workspace }}:/src
run: dotnet test /src/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated
- name: Test - RUN on path
uses: kohlerdominik/[email protected]
with:
image: mcr.microsoft.com/dotnet/sdk:8.0
environment: |
CONFIG__BACKUPURL=http://localhost:5000
CONFIG__WAIT=60
CONFIG__SERVER__URL=http://localhost:8081/squidex
WEBHOOKCATCHER__HOST__ENDPOINT=webhookcatcher
default_network: host
options: --name test2
volumes: ${{ github.workspace }}:/src
run: dotnet test /src/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated
- name: Test - RUN with dedicated collections
uses: kohlerdominik/[email protected]
with:
image: squidex/build:9
environment: |
CONFIG__BACKUPURL=http://localhost:5000
CONFIG__WAIT=60
CONFIG__SERVER__URL=http://localhost:8082
WEBHOOKCATCHER__HOST__ENDPOINT=webhookcatcher
default_network: host
options: --name test3
volumes: ${{ github.workspace }}:/src
run: dotnet test /src/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated
- name: Test - Install Playwright Dependencies
run: npm ci
working-directory: './tools/e2e'
- name: Test - Install Playwright Browsers
run: npx playwright install --with-deps
working-directory: './tools/e2e'
- name: Test - Run Playwright Tests
run: npx playwright test
working-directory: './tools/e2e'
env:
BASE__URL: http://localhost:8080
- name: Test - Upload Playwright Artifacts
if: always()
uses: actions/[email protected]
with:
name: playwright-report
path: tools/e2e/playwright-report/
retention-days: 30
- name: Test - Dump docker logs on failure
if: failure()
uses: jwalton/[email protected]
with:
images: 'squidex-local,squidex/resizer'
tail: '100'
- name: Test - Cleanup
if: always()
run: docker compose down
working-directory: tools/TestSuite
- name: Publish - Remove unnecessary files
run: |
sudo rm -rf /usr/share/dotnet
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
- name: Publish - Get Major Version
id: version
uses: rishabhgupta/[email protected]
with:
string: "${{ env.GITHUB_REF_SLUG }}"
split-by: "."
- name: Publish - Check Tag
id: normal-version
run: |
if [[ ${{ env.GITHUB_REF_SLUG }} =~ ^[0-9]+\.[0-9]+(\.[0-9]+){0,2}$ ]]; then
echo "STABLE_VERSION=true" >> $GITHUB_ENV
fi
- name: Publish - Login to Docker Hub
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Publish - Build & Push for Multi-Platforms
uses: docker/[email protected]
with:
build-args: "SQUIDEX__BUILD__VERSION=${{ env.GITHUB_REF_SLUG }},SQUIDEX__RUNTIME__VERSION=${{ env.GITHUB_REF_SLUG }}"
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
tags: squidex/squidex:${{ env.GITHUB_REF_SLUG }},squidex/squidex:${{ steps.version.outputs._0 }}${{env.STABLE_VERSION == 'true' && ',squidex/squidex:latest'}}
push: true
- name: Release - Make directories
run: sudo mkdir /build /release
- name: Release - Create container
run: docker create --name squidex-container squidex-local
- name: Release - Get binaries
run: sudo docker cp squidex-container:/app/. /build
- name: Release - Zip Binaries
run: sudo zip -r /release/binaries.zip .
working-directory: /build
- name: Release - Get Changelog Entry
id: changelog_reader
uses: mindsers/[email protected]
with:
version: ${{ env.GITHUB_REF_SLUG }}
path: ./CHANGELOG.md
- name: Release - Publish Binaries
uses: ncipollo/[email protected]
with:
allowUpdates: true
artifactErrorsFailBuild: true
artifacts: "/release/binaries.zip"
body: ${{ steps.changelog_reader.outputs.changes }}
name: ${{ env.GITHUB_REF_SLUG }}
replacesArtifacts: true
token: ${{ secrets.GITHUB_TOKEN }}
- name: Release - Cleanup Binaries
if: always()
run: docker rm squidex-container