From 9b99dc2fe82729dbd6c52204b5541c73272cd5bb Mon Sep 17 00:00:00 2001 From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:08:24 +0100 Subject: [PATCH 1/5] build: fix Docker build Closes #315 --- .dockerignore | 6 ++++++ Dockerfile | 21 ++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1853c1a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +.nyc_output +.parcel-cache +coverage +dist +node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index eb35e8f..291fe2b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,17 @@ -FROM node:alpine +FROM node:18.13.0 as build RUN mkdir /peer-server WORKDIR /peer-server -COPY bin ./bin -COPY dist ./dist -COPY package.json . -RUN npm install --production +COPY package.json package-lock.json ./ +RUN npm clean-install +COPY . ./ +RUN npm run build + +FROM node:18.13.0-alpine as production +RUN mkdir /peer-server +WORKDIR /peer-server +COPY package.json package-lock.json ./ +RUN npm clean-install --omit=dev +COPY --from=build /peer-server/dist/bin/peerjs.js ./ EXPOSE 9000 -ENTRYPOINT ["node", "bin/peerjs"] -CMD [ "--port", "9000", "--path", "/myapp" ] +ENTRYPOINT ["node", "peerjs.js"] +CMD [ "--port", "9000" ] From b4bdd61cf6077c35055b93281fff56ff274cd79e Mon Sep 17 00:00:00 2001 From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:12:00 +0100 Subject: [PATCH 2/5] chore: remove docker-compose.yml --- docker-compose.yml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index c53faf1..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,10 +0,0 @@ -version: '3' - -services: - peerjs: - build: . - container_name: peerjs_server - expose: - - 9000 - ports: - - "9000:9000" \ No newline at end of file From 1363adf592666996185baba1d7084e86522b4293 Mon Sep 17 00:00:00 2001 From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:20:24 +0100 Subject: [PATCH 3/5] build: run tests in docker container during build Reduces the risk of an updated Docker image breaking things unnoticed --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 291fe2b..e83af21 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,7 @@ COPY package.json package-lock.json ./ RUN npm clean-install COPY . ./ RUN npm run build +RUN npm run test FROM node:18.13.0-alpine as production RUN mkdir /peer-server From ef6f761f0cf9b08efc22ea448ccb636286f08c04 Mon Sep 17 00:00:00 2001 From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com> Date: Tue, 17 Jan 2023 15:56:13 +0100 Subject: [PATCH 4/5] build: docker image with semantic release --- .github/workflows/release.yml | 6 ++++++ .releaserc.json | 38 ++++++++++++++++++++++++++--------- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aee4aea..5f93085 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,6 +9,12 @@ jobs: name: Release runs-on: ubuntu-latest steps: + - + name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME } }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Checkout uses: actions/checkout@v3 with: diff --git a/.releaserc.json b/.releaserc.json index 749f4b1..4baf3d2 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,11 +1,31 @@ { - "branches": ["stable", { "name": "rc", "prerelease": true }], - "plugins": [ - "@semantic-release/commit-analyzer", - "@semantic-release/release-notes-generator", - "@semantic-release/changelog", - "@semantic-release/npm", - "@semantic-release/git", - "@semantic-release/github" - ] + "branches": [ + "stable", + { + "name": "rc", + "prerelease": true + } + ], + "plugins": [ + "@semantic-release/commit-analyzer", + "@semantic-release/release-notes-generator", + "@semantic-release/changelog", + "@semantic-release/npm", + "@semantic-release/git", + "@semantic-release/github", + [ + "@codedependant/semantic-release-docker", + { + "dockerTags": [ + "{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}", + "{{major}}-{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}", + "{{major}}.{{minor}}-{{#if prerelease.[0]}}{{prerelease.[0]}}{{else}}latest{{/if}}", + "{{version}}" + ], + "dockerImage": "peerjs-server-test", + "dockerFile": "Dockerfile", + "dockerProject": "peerjs" + } + ] + ] } From fa79cb85c578b36358b4f5e01ae8012c322757d9 Mon Sep 17 00:00:00 2001 From: Jonas Gloning <34194370+jonasgloning@users.noreply.github.com> Date: Tue, 17 Jan 2023 16:14:27 +0100 Subject: [PATCH 5/5] build: ci for docker --- .github/workflows/docker.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..4b4d0b2 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,28 @@ +name: Docker build & publish + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build + if: ${{ github.event_name == 'pull_request' }} + uses: docker/build-push-action@v3 + - name: Build & publish + if: ${{ github.event_name == 'push' }} + uses: docker/build-push-action@v3 + with: + push: true + tags: peerjs/peerjs-server-test:nightly