fix(server): handle number port (#692) #691
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish rolling build | |
on: | |
push: | |
branches: | |
- master | |
jobs: | |
npm: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
node: [20] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
registry-url: 'https://registry.npmjs.org' | |
cache: npm | |
- run: npm ci | |
- name: Tag rolling release | |
id: tag_release | |
run: | | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
build_version=0.0.0-master.`git rev-parse --short HEAD` | |
npm version --no-git-tag-version $build_version | |
echo ::set-output name=BUILD_VERSION::$build_version | |
- name: Use @jesec scope | |
run: | | |
jq '.name = "@jesec/flood"' package.json > package.new.json | |
mv package.new.json package.json | |
- run: npm pack | |
- run: npm publish --access public ./*.tgz | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Upload tarball | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood | |
path: ./*.tgz | |
if-no-files-found: error | |
- name: Wait until the package is available | |
uses: nick-invision/retry@v2 | |
with: | |
command: curl -f -s https://registry.npmjs.org/@jesec/flood/${{ steps.tag_release.outputs.BUILD_VERSION }} &>/dev/null | |
timeout_minutes: 30 | |
max_attempts: 15 | |
retry_wait_seconds: 15 | |
- run: sleep 20 | |
docker: | |
needs: npm | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- 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: Parse version | |
id: parse_version | |
run: | | |
echo ::set-output name=BUILD_VERSION::0.0.0-master.`git rev-parse --short HEAD` | |
- name: Publish flood:master to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./distribution/containers/Dockerfile.release | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: jesec/flood:master | |
build-args: | | |
PACKAGE=@jesec/flood | |
VERSION=${{ steps.parse_version.outputs.BUILD_VERSION }} | |
- run: sleep 10 | |
- name: Publish rtorrent-flood to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./distribution/containers/Dockerfile.rtorrent | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: | | |
jesec/rtorrent-flood:master | |
jesec/rtorrent-flood:latest | |
build-args: | | |
FLOOD_VERSION=master | |
RTORRENT_VERSION=master | |
docker-dbg: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
node: [20] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
registry-url: 'https://registry.npmjs.org' | |
cache: npm | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- 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: Tag rolling release | |
run: | | |
git config --local user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git config --local user.name "github-actions[bot]" | |
npm version --no-git-tag-version 0.0.0-master.`git rev-parse --short HEAD` | |
- name: Publish flood:master-dbg to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile | |
target: flood | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: jesec/flood:master-dbg | |
- name: Publish rtorrent-flood:master-dbg to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./Dockerfile | |
target: rtorrent-flood | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: jesec/rtorrent-flood:master-dbg | |
pkg: | |
needs: npm | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
node: [20] | |
steps: | |
- name: Use Node.js ${{ matrix.node }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
registry-url: 'https://registry.npmjs.org' | |
- name: Set up QEMU | |
run: | | |
sudo apt update | |
sudo apt install --reinstall -y qemu-user-static | |
- name: Install ldid | |
run: | | |
sudo wget https://github.com/jesec/ldid-static/releases/download/v2.1.4/ldid-amd64 -O /usr/local/bin/ldid | |
sudo chmod +x /usr/local/bin/ldid | |
- run: sudo npm install -g pkg | |
- uses: actions/download-artifact@v2 | |
with: | |
name: flood | |
- name: Extract tarball | |
run: | | |
tar xvf *.tgz --strip-components=1 | |
- name: Build executables | |
run: | | |
pkg . --out-path dist-pkg | |
- name: Rename linuxstatic to linux | |
run: | | |
mv dist-pkg/flood-linuxstatic-x64 dist-pkg/flood-linux-x64 | |
mv dist-pkg/flood-linuxstatic-arm64 dist-pkg/flood-linux-arm64 | |
- name: 'Upload executable: Linux x64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-linux-x64 | |
path: dist-pkg/flood-linux-x64 | |
if-no-files-found: error | |
- name: 'Upload executable: Linux arm64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-linux-arm64 | |
path: dist-pkg/flood-linux-arm64 | |
if-no-files-found: error | |
- name: 'Upload executable: MacOS x64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-macos-x64 | |
path: dist-pkg/flood-macos-x64 | |
if-no-files-found: error | |
- name: 'Upload executable: MacOS arm64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-macos-arm64 | |
path: dist-pkg/flood-macos-arm64 | |
if-no-files-found: error | |
- name: 'Upload executable: Windows x64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-win-x64.exe | |
path: dist-pkg/flood-win-x64.exe | |
if-no-files-found: error | |
- name: 'Upload executable: Windows arm64' | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flood-win-arm64.exe | |
path: dist-pkg/flood-win-arm64.exe | |
if-no-files-found: error | |
docker-distroless: | |
needs: pkg | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v2 | |
- 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 }} | |
- uses: actions/download-artifact@v2 | |
with: | |
name: flood-linux-arm64 | |
path: artifacts | |
- uses: actions/download-artifact@v2 | |
with: | |
name: flood-linux-x64 | |
path: artifacts | |
- run: find . | |
- name: Publish flood:master-distroless to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./distribution/containers/Dockerfile.distroless | |
target: flood | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: jesec/flood:master-distroless | |
- name: Publish rtorrent-flood:master-distroless to Docker Hub | |
uses: docker/build-push-action@v4 | |
with: | |
context: . | |
file: ./distribution/containers/Dockerfile.distroless | |
target: rtorrent-flood | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: jesec/rtorrent-flood:master-distroless |