diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..dc8cdbdf --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +node_modules/ +dist/ +out/ \ No newline at end of file diff --git a/.github/workflows/on-main.yaml b/.github/workflows/on-main.yaml new file mode 100644 index 00000000..d75c580e --- /dev/null +++ b/.github/workflows/on-main.yaml @@ -0,0 +1,39 @@ +name: Docker Compose Build + +on: + push: + branches: + - main + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [15.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: yarn + - name: Linter check + run: yarn lint + build: + name: Run docker build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Get the version + id: vars + run: echo ::set-output name=sha::$(echo ${GITHUB_SHA:0:7}) + - name: Run docker build + run: make docker-build + - name: Tag docker image + run: docker tag vulcanize/watcher-ts ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.sha}} + - name: Docker Login + run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u vulcanize --password-stdin + - name: Docker Push + run: docker push ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.sha}} + diff --git a/.github/workflows/on-pr.yaml b/.github/workflows/on-pr.yaml new file mode 100644 index 00000000..3cd8e0ed --- /dev/null +++ b/.github/workflows/on-pr.yaml @@ -0,0 +1,27 @@ +name: Docker Build + +on: [pull_request] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + node-version: [15.x] + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: yarn + - name: Linter check + run: yarn lint + build: + name: Run docker build + runs-on: ubuntu-latest + needs: test + steps: + - uses: actions/checkout@v2 + - name: Run docker build + run: make docker-build diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 00000000..e7dbf15e --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,23 @@ +name: Publish Docker image +on: + release: + types: [published] +jobs: + docker_publish: + name: Push Docker image to Github Hub + runs-on: ubuntu-latest + steps: + - name: Get the version + id: vars + run: | + echo ::set-output name=sha::$(echo ${GITHUB_SHA:0:7}) + echo ::set-output name=tag::$(echo ${GITHUB_REF#refs/tags/}) + - name: Docker Login to Registry + run: echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u vulcanize --password-stdin + - name: Docker Pull + run: docker pull ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.sha}} + - name: Tag docker image + run: docker tag ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.sha}} ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.tag}} + - name: Docker Push to Github Hub + run: docker push ghcr.io/vulcanize/watcher-ts:${{steps.vars.outputs.tag}} + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..2b42f09e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM node:15.3.0-alpine3.10 + +WORKDIR /app + +COPY . . + +RUN apk --update --no-cache add git && yarn + diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..15372c96 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +## Build docker image +.PHONY: docker-build +docker-build: + docker build -t vulcanize/watcher-ts . \ No newline at end of file