|
|
|
@ -1,5 +1,5 @@ |
|
|
|
name: Release |
|
|
|
concurrency: release |
|
|
|
concurrency: build |
|
|
|
|
|
|
|
on: |
|
|
|
push: |
|
|
|
@ -11,7 +11,7 @@ jobs: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v3 |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
@ -22,71 +22,48 @@ jobs: |
|
|
|
- name: Set up Docker Buildx |
|
|
|
uses: docker/setup-buildx-action@v2.2.1 |
|
|
|
|
|
|
|
- name: Cache Docker layers |
|
|
|
uses: actions/cache@v3.0.11 |
|
|
|
- name: Login to Docker Hub |
|
|
|
uses: docker/login-action@v2.1.0 |
|
|
|
with: |
|
|
|
path: /tmp/.buildx-cache |
|
|
|
key: ${{ runner.os }}-buildx-${{ github.sha }} |
|
|
|
restore-keys: | |
|
|
|
${{ runner.os }}-buildx- |
|
|
|
username: ${{ secrets.DOCKER_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }} |
|
|
|
|
|
|
|
- name: BUILD |
|
|
|
uses: docker/build-push-action@v3.2.0 |
|
|
|
with: |
|
|
|
push: false |
|
|
|
load: true |
|
|
|
tags: squidex-tmp |
|
|
|
build-args: "SQUIDEX__VERSION=${{ env.GITHUB_REF_SLUG }}" |
|
|
|
cache-from: type=local,src=/tmp/.buildx-cache |
|
|
|
cache-to: type=local,dest=/tmp/.buildx-cache-new |
|
|
|
|
|
|
|
- name: Export Image |
|
|
|
run: docker save squidex-tmp | gzip > squidex-tmp.tar.gz |
|
|
|
|
|
|
|
- name: Save Image to Cache |
|
|
|
uses: actions/cache@v3.0.11 |
|
|
|
with: |
|
|
|
path: squidex-tmp.tar.gz |
|
|
|
key: squidex-release-image-${{ github.sha }} |
|
|
|
|
|
|
|
- name: Move cache |
|
|
|
run: | |
|
|
|
rm -rf /tmp/.buildx-cache |
|
|
|
mv /tmp/.buildx-cache-new /tmp/.buildx-cache |
|
|
|
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-build |
|
|
|
|
|
|
|
test: |
|
|
|
needs: build |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v3 |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Get Image From Cache |
|
|
|
uses: actions/cache@v3.0.11 |
|
|
|
with: |
|
|
|
path: squidex-tmp.tar.gz |
|
|
|
key: squidex-release-image-${{ github.sha }} |
|
|
|
|
|
|
|
- name: Load Image |
|
|
|
run: docker load < squidex-tmp.tar.gz |
|
|
|
|
|
|
|
- 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-tmp"' -i backend/tests/docker-compose.yml |
|
|
|
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-tmp"' -i backend/tests/docker-compose.yml |
|
|
|
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-tmp"' -i backend/tests/docker-compose.yml |
|
|
|
cmd: yq e '.services.squidex3.image = "squidex/squidex-build"' -i backend/tests/docker-compose.yml |
|
|
|
|
|
|
|
- name: Start Test |
|
|
|
run: docker-compose up -d |
|
|
|
@ -150,18 +127,15 @@ jobs: |
|
|
|
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: Login to Docker Hub |
|
|
|
uses: docker/login-action@v2.1.0 |
|
|
|
with: |
|
|
|
username: ${{ secrets.DOCKER_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }} |
|
|
|
|
|
|
|
- name: Get Major Version |
|
|
|
id: version |
|
|
|
uses: rishabhgupta/split-by@v1.0.1 |
|
|
|
uses: rishabhgupta/split-by@v1 |
|
|
|
with: |
|
|
|
string: "${{ env.GITHUB_REF_SLUG }}" |
|
|
|
split-by: "." |
|
|
|
@ -170,59 +144,64 @@ jobs: |
|
|
|
id: normal-version |
|
|
|
run: | |
|
|
|
if [[ ${{ env.GITHUB_REF_SLUG }} =~ ^[0-9]+\.[0-9]+$ ]]; then |
|
|
|
echo ::set-output name=match::true |
|
|
|
echo "STABLE_VERSION=true" >> $GITHUB_ENV |
|
|
|
fi |
|
|
|
|
|
|
|
- name: Get Image From Cache |
|
|
|
uses: actions/cache@v3.0.11 |
|
|
|
with: |
|
|
|
path: squidex-tmp.tar.gz |
|
|
|
key: squidex-release-image-${{ github.sha }} |
|
|
|
- name: Set up QEMU |
|
|
|
uses: docker/setup-qemu-action@v2.1.0 |
|
|
|
|
|
|
|
- name: Load Image |
|
|
|
run: docker load < squidex-tmp.tar.gz |
|
|
|
- name: Set up Docker Buildx |
|
|
|
uses: docker/setup-buildx-action@v2.2.1 |
|
|
|
|
|
|
|
- name: Rename Tags |
|
|
|
run: | |
|
|
|
docker tag squidex-tmp squidex/squidex:latest |
|
|
|
docker tag squidex-tmp squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
docker tag squidex-tmp squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
- name: Login to Docker Hub |
|
|
|
uses: docker/login-action@v2.1.0 |
|
|
|
with: |
|
|
|
username: ${{ secrets.DOCKER_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKER_PASSWORD }} |
|
|
|
|
|
|
|
- name: Push Version |
|
|
|
run: | |
|
|
|
docker push squidex/squidex:latest |
|
|
|
docker push squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
docker push 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:latest |
|
|
|
squidex/squidex:${{ env.GITHUB_REF_SLUG }} |
|
|
|
squidex/squidex:${{ steps.version.outputs._0 }} |
|
|
|
if: env.STABLE_VERSION == 'true' |
|
|
|
|
|
|
|
- name: Push Latest |
|
|
|
run: | |
|
|
|
docker push squidex/squidex:latest |
|
|
|
if: steps.normal-version.outputs.match == 'true' |
|
|
|
- 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 |
|
|
|
uses: actions/checkout@v3.1.0 |
|
|
|
|
|
|
|
- name: Inject slug/short variables |
|
|
|
uses: rlespinasse/github-slug-action@v4.3.2 |
|
|
|
|
|
|
|
- name: Get Image From Cache |
|
|
|
uses: actions/cache@v3.0.11 |
|
|
|
with: |
|
|
|
path: squidex-tmp.tar.gz |
|
|
|
key: squidex-release-image-${{ github.sha }} |
|
|
|
|
|
|
|
- name: Load Image |
|
|
|
run: docker load < squidex-tmp.tar.gz |
|
|
|
|
|
|
|
- name: Pull from Cache |
|
|
|
run: docker pull squidex/squidex-build |
|
|
|
|
|
|
|
- name: Make directories |
|
|
|
run: sudo mkdir /build /release |
|
|
|
|
|
|
|
- name: Create container |
|
|
|
run: docker create --name squidex-container squidex-tmp:latest |
|
|
|
run: docker create --name squidex-container squidex/squidex-build |
|
|
|
|
|
|
|
- name: Get binaries |
|
|
|
run: sudo docker cp squidex-container:/app/. /build |
|
|
|
|