|
|
|
@ -7,69 +7,35 @@ on: |
|
|
|
- "*" |
|
|
|
|
|
|
|
jobs: |
|
|
|
build: |
|
|
|
build_test: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
- name: Prepare - Checkout |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
- name: Prepare - Inject short Variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Set up QEMU |
|
|
|
- name: Prepare - Set up QEMU |
|
|
|
uses: docker/setup-qemu-action@v2.1.0 |
|
|
|
|
|
|
|
- name: Set up Docker Buildx |
|
|
|
- name: Prepare - Set up Docker Buildx |
|
|
|
uses: docker/setup-buildx-action@v2.2.1 |
|
|
|
|
|
|
|
- name: Login to Docker Hub |
|
|
|
uses: docker/login-action@v2.1.0 |
|
|
|
with: |
|
|
|
username: ${{ secrets.DOCKER_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }} |
|
|
|
|
|
|
|
- name: BUILD |
|
|
|
- name: Build - BUILD |
|
|
|
uses: docker/build-push-action@v3.2.0 |
|
|
|
with: |
|
|
|
push: true |
|
|
|
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/squidex-build |
|
|
|
|
|
|
|
test: |
|
|
|
needs: build |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
tags: squidex-local |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Pull from Cache |
|
|
|
run: docker pull squidex/squidex-build |
|
|
|
|
|
|
|
- name: Replace Image Name1 |
|
|
|
uses: mikefarah/yq@v4.28.2 |
|
|
|
with: |
|
|
|
cmd: yq e '.services.squidex1.image = "squidex/squidex-build"' -i backend/tests/docker-compose.yml |
|
|
|
|
|
|
|
- name: Replace Image Name2 |
|
|
|
uses: mikefarah/yq@v4.28.2 |
|
|
|
with: |
|
|
|
cmd: yq e '.services.squidex2.image = "squidex/squidex-build"' -i backend/tests/docker-compose.yml |
|
|
|
|
|
|
|
- name: Replace Image Name3 |
|
|
|
uses: mikefarah/yq@v4.28.2 |
|
|
|
with: |
|
|
|
cmd: yq e '.services.squidex3.image = "squidex/squidex-build"' -i backend/tests/docker-compose.yml |
|
|
|
|
|
|
|
- name: Start Test |
|
|
|
- name: Test - Start Compose |
|
|
|
run: docker-compose up -d |
|
|
|
working-directory: backend/tests |
|
|
|
|
|
|
|
- name: RUN TEST |
|
|
|
- name: Test - RUN |
|
|
|
uses: kohlerdominik/docker-run-action@v1.1.0 |
|
|
|
with: |
|
|
|
image: squidex/build:7 |
|
|
|
@ -83,7 +49,7 @@ jobs: |
|
|
|
volumes: ${{ github.workspace }}:/src |
|
|
|
run: dotnet test /src/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated |
|
|
|
|
|
|
|
- name: RUN TEST on path |
|
|
|
- name: Test - RUN on path |
|
|
|
uses: kohlerdominik/docker-run-action@v1.1.0 |
|
|
|
with: |
|
|
|
image: squidex/build:7 |
|
|
|
@ -97,7 +63,7 @@ jobs: |
|
|
|
volumes: ${{ github.workspace }}:/src |
|
|
|
run: dotnet test /src/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated |
|
|
|
|
|
|
|
- name: RUN TEST with dedicated collections |
|
|
|
- name: Test - RUN with dedicated collections |
|
|
|
uses: kohlerdominik/docker-run-action@v1.1.0 |
|
|
|
with: |
|
|
|
image: squidex/build:7 |
|
|
|
@ -111,114 +77,73 @@ jobs: |
|
|
|
volumes: ${{ github.workspace }}:/src |
|
|
|
run: dotnet test /src/backend/tools/TestSuite/TestSuite.ApiTests/TestSuite.ApiTests.csproj --filter Category!=NotAutomated |
|
|
|
|
|
|
|
- name: Dump docker logs on failure |
|
|
|
- name: Test - Dump docker logs on failure |
|
|
|
if: failure() |
|
|
|
uses: jwalton/gh-docker-logs@v2.2.1 |
|
|
|
with: |
|
|
|
images: 'squidex-tmp,squidex/resizer,squidex/caddy-proxy-path' |
|
|
|
images: 'squidex-local,squidex/resizer' |
|
|
|
tail: '100' |
|
|
|
|
|
|
|
- name: Cleanup Test |
|
|
|
- name: Test - Cleanup |
|
|
|
if: always() |
|
|
|
run: docker-compose down |
|
|
|
working-directory: backend/tests |
|
|
|
|
|
|
|
publish: |
|
|
|
needs: test |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Get Major Version |
|
|
|
- name: Publish - Get Major Version |
|
|
|
id: version |
|
|
|
uses: rishabhgupta/split-by@v1 |
|
|
|
with: |
|
|
|
string: "${{ env.GITHUB_REF_SLUG }}" |
|
|
|
split-by: "." |
|
|
|
|
|
|
|
- name: Check Tag |
|
|
|
- name: Publish - Check Tag |
|
|
|
id: normal-version |
|
|
|
run: | |
|
|
|
if [[ ${{ env.GITHUB_REF_SLUG }} =~ ^[0-9]+\.[0-9]+$ ]]; then |
|
|
|
echo "STABLE_VERSION=true" >> $GITHUB_ENV |
|
|
|
fi |
|
|
|
|
|
|
|
- name: Set up QEMU |
|
|
|
uses: docker/setup-qemu-action@v2.1.0 |
|
|
|
|
|
|
|
- name: Set up Docker Buildx |
|
|
|
uses: docker/setup-buildx-action@v2.2.1 |
|
|
|
|
|
|
|
- name: Login to Docker Hub |
|
|
|
- name: Publish - Login to Docker Hub |
|
|
|
uses: docker/login-action@v2.1.0 |
|
|
|
with: |
|
|
|
username: ${{ secrets.DOCKER_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }} |
|
|
|
|
|
|
|
- name: BUILD |
|
|
|
uses: docker/build-push-action@v3.2.0 |
|
|
|
with: |
|
|
|
push: 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/squidex:latest |
|
|
|
squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
- name: Publish - Rename Tags |
|
|
|
run: | |
|
|
|
docker tag squidex-local squidex/squidex:latest |
|
|
|
docker tag squidex-local squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
docker tag squidex-local squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
|
|
|
|
- name: Publish - Push Tags |
|
|
|
if: env.STABLE_VERSION == 'true' |
|
|
|
run: | |
|
|
|
docker tag squidex-local squidex/squidex:latest |
|
|
|
docker tag squidex-local squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
docker tag squidex-local squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
|
|
|
|
- name: BUILD |
|
|
|
uses: docker/build-push-action@v3.2.0 |
|
|
|
with: |
|
|
|
push: 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/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
if: env.STABLE_VERSION != 'true' |
|
|
|
|
|
|
|
release: |
|
|
|
needs: publish |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Pull from Cache |
|
|
|
run: docker pull squidex/squidex-build |
|
|
|
|
|
|
|
- name: Make directories |
|
|
|
- name: Release - Make directories |
|
|
|
run: sudo mkdir /build /release |
|
|
|
|
|
|
|
- name: Create container |
|
|
|
run: docker create --name squidex-container squidex/squidex-build |
|
|
|
- name: Release - Create container |
|
|
|
run: docker create --name squidex-container squidex-local |
|
|
|
|
|
|
|
- name: Get binaries |
|
|
|
- name: Release - Get binaries |
|
|
|
run: sudo docker cp squidex-container:/app/. /build |
|
|
|
|
|
|
|
- name: ZIP Binaries |
|
|
|
- name: Release - Zip Binaries |
|
|
|
run: sudo zip -r /release/binaries.zip . |
|
|
|
working-directory: /build |
|
|
|
|
|
|
|
- name: Get Changelog Entry |
|
|
|
- name: Release - Get Changelog Entry |
|
|
|
id: changelog_reader |
|
|
|
uses: mindsers/changelog-reader-action@v2.2.0 |
|
|
|
uses: mindsers/changelog-reader-action@v2 |
|
|
|
with: |
|
|
|
version: ${{ env.GITHUB_REF_SLUG }} |
|
|
|
path: ./CHANGELOG.md |
|
|
|
|
|
|
|
- name: Publish Binaries |
|
|
|
uses: ncipollo/release-action@v1.11.1 |
|
|
|
- name: Release - Publish Binaries |
|
|
|
uses: ncipollo/release-action@v1 |
|
|
|
with: |
|
|
|
allowUpdates: true |
|
|
|
artifactErrorsFailBuild: true |
|
|
|
@ -228,6 +153,6 @@ jobs: |
|
|
|
replacesArtifacts: true |
|
|
|
token: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
|
|
|
|
- name: Cleanup Binaries |
|
|
|
- name: Release - Cleanup Binaries |
|
|
|
if: always() |
|
|
|
run: docker rm squidex-container |
|
|
|
run: docker rm squidex-container |