mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-19 22:23:33 +01:00
04063d664b
* fix bin folder and workflows as far its possible cleanup of dockerfile changed paths of scripts add lock file fix working directory for workflows fix windows bin fix travis (is travis used anyway?) fix package refs remove pnpm-lock file in root as these conflicts with the docker volume setup optimize comments use install again refactor prod image call to run fix --workspace can only be used inside a workspace correct comment try fix pipeline try fix pipeline for upgrade-from-latest-release install all deps smaller adjustments save update dockerfile remove workspace command fix run test command start repair latest release workflow start repair latest release workflow start repair latest release workflow further repairs * remove test plugin from docker compose
113 lines
3.3 KiB
YAML
113 lines
3.3 KiB
YAML
name: Docker
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- 'develop'
|
|
tags:
|
|
- 'v?[0-9]+.[0-9]+.[0-9]+'
|
|
env:
|
|
TEST_TAG: etherpad/etherpad:test
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
docker:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
-
|
|
name: Check out
|
|
uses: actions/checkout@v4
|
|
-
|
|
name: Set up QEMU
|
|
if: github.event_name == 'push'
|
|
uses: docker/setup-qemu-action@v3
|
|
-
|
|
name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
-
|
|
name: Build and export to Docker
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
target: production
|
|
load: true
|
|
tags: ${{ env.TEST_TAG }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|
|
-
|
|
name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 'lts/*'
|
|
- uses: pnpm/action-setup@v3
|
|
name: Install pnpm
|
|
with:
|
|
version: 8
|
|
run_install: false
|
|
- name: Get pnpm store directory
|
|
shell: bash
|
|
run: |
|
|
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
|
|
- uses: actions/cache@v4
|
|
name: Setup pnpm cache
|
|
with:
|
|
path: ${{ env.STORE_PATH }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
-
|
|
name: Test
|
|
run: |
|
|
docker run --rm -d -p 9001:9001 --name test ${{ env.TEST_TAG }}
|
|
./bin/installDeps.sh
|
|
docker logs -f test &
|
|
while true; do
|
|
echo "Waiting for Docker container to start..."
|
|
status=$(docker container inspect -f '{{.State.Health.Status}}' test) || exit 1
|
|
case ${status} in
|
|
healthy) break;;
|
|
starting) sleep 2;;
|
|
*) printf %s\\n "unexpected status: ${status}" >&2; exit 1;;
|
|
esac
|
|
done
|
|
(cd src && pnpm run test-container)
|
|
git clean -dxf .
|
|
-
|
|
name: Docker meta
|
|
if: github.event_name == 'push'
|
|
id: meta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: etherpad/etherpad
|
|
tags: |
|
|
type=ref,event=branch
|
|
type=semver,pattern={{version}}
|
|
type=semver,pattern={{major}}.{{minor}}
|
|
type=semver,pattern={{major}}
|
|
-
|
|
name: Log in to Docker Hub
|
|
if: github.event_name == 'push'
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
-
|
|
name: Build and push
|
|
if: github.event_name == 'push'
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
target: production
|
|
platforms: linux/amd64,linux/arm64
|
|
push: true
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
- name: Update repo description
|
|
uses: peter-evans/dockerhub-description@v4
|
|
if: github.ref == 'refs/heads/master'
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
repository: etherpad/etherpad
|
|
enable-url-completion: true
|