12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- name: joystream-node-docker
- on: push
- jobs:
- build:
- name: Build joystream/node Docker image
- if: github.repository == 'Joystream/joystream'
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v1
- - uses: actions/setup-node@v1
- with:
- node-version: '14.x'
- - id: compute_shasum
- name: Compute runtime code shasum
- run: |
- export RUNTIME_CODE_SHASUM=`scripts/runtime-code-shasum.sh`
- echo "::set-output name=shasum::${RUNTIME_CODE_SHASUM}"
- - name: Setup cache directory
- run: mkdir ~/docker-images
- - name: Cache docker images
- uses: actions/cache@v2
- env:
- cache-name: joystream-node-docker
- with:
- path: ~/docker-images
- key: ${{ env.cache-name }}-${{ steps.compute_shasum.outputs.shasum }}
- - name: Check if we have cached image
- continue-on-error: true
- run: |
- if [ -f ~/docker-images/joystream-node-docker-image.tar.gz ]; then
- docker load --input ~/docker-images/joystream-node-docker-image.tar.gz
- cp ~/docker-images/joystream-node-docker-image.tar.gz .
- fi
- - name: Check if we have pre-built image on Dockerhub
- continue-on-error: true
- run: |
- if ! [ -f joystream-node-docker-image.tar.gz ]; then
- docker pull joystream/node:${{ steps.compute_shasum.outputs.shasum }}
- docker image tag joystream/node:${{ steps.compute_shasum.outputs.shasum }} joystream/node:latest
- docker save --output joystream-node-docker-image.tar joystream/node:latest
- gzip joystream-node-docker-image.tar
- cp joystream-node-docker-image.tar.gz ~/docker-images/
- fi
- - name: Build new joystream/node image
- run: |
- if ! [ -f joystream-node-docker-image.tar.gz ]; then
- docker build . --file joystream-node.Dockerfile --tag joystream/node
- docker save --output joystream-node-docker-image.tar joystream/node
- gzip joystream-node-docker-image.tar
- cp joystream-node-docker-image.tar.gz ~/docker-images/
- echo "NEW_BUILD=true" >> $GITHUB_ENV
- fi
- - name: Save joystream/node image to Artifacts
- uses: actions/upload-artifact@v2
- with:
- name: ${{ steps.compute_shasum.outputs.shasum }}-joystream-node-docker-image.tar.gz
- path: joystream-node-docker-image.tar.gz
- - name: Login to DockerHub
- uses: docker/login-action@v1
- with:
- username: ${{ secrets.DOCKERHUB_USERNAME }}
- password: ${{ secrets.DOCKERHUB_PASSWORD }}
- if: env.NEW_BUILD
- - name: Publish new image to DockerHub
- run: |
- docker image tag joystream/node joystream/node:${{ steps.compute_shasum.outputs.shasum }}
- docker push joystream/node:${{ steps.compute_shasum.outputs.shasum }}
- if: env.NEW_BUILD
-
|