| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- name: Docker Image Build CI
- on:
- push:
- tags:
- - 'tag/build-docker-image/*'
- jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v1
- - name: Set up Node.js
- uses: actions/setup-node@v2
- with:
- node-version: '14'
- - name: Read version from .env
- id: env
- run: echo "::set-output name=PRODUCTION_BUILD_VERSION::$(grep ^PRODUCTION_BUILD_VERSION= .env | cut -d'=' -f2)"
- - name: Build the Docker image for latest
- run: docker build -f ./.docker/Dockerfile_production -t ${{ vars.DOCKERHUB_USERNAME}}/tweb:latest .
- - name: Build the Docker image for specific version
- run: |
- version=${{ steps.env.outputs.PRODUCTION_BUILD_VERSION }}
- docker build -f ./.docker/Dockerfile_production -t ${{ vars.DOCKERHUB_USERNAME}}/tweb:${version} .
- - name: Login to Docker Hub
- run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | docker login -u "${{ vars.DOCKERHUB_USERNAME}}" --password-stdin
- - name: Push versioned image
- run: |
- version=${{ steps.env.outputs.PRODUCTION_BUILD_VERSION }}
- docker push ${{ vars.DOCKERHUB_USERNAME}}/tweb:${version}
- - name: Push latest image
- run: |
- docker push ${{ vars.DOCKERHUB_USERNAME}}/tweb:latest
- test:
- needs: build
- runs-on: ubuntu-latest
- steps:
- - name: Checkout code
- uses: actions/checkout@v4
- - name: Read version from .env
- id: env
- run: echo "::set-output name=PRODUCTION_BUILD_VERSION::$(grep ^PRODUCTION_BUILD_VERSION= .env | cut -d'=' -f2)"
- - name: Pull versioned image
- run: |
- version=${{ steps.env.outputs.PRODUCTION_BUILD_VERSION }}
- docker pull ${{ vars.DOCKERHUB_USERNAME}}/tweb:${version}
- - name: Pull latest image
- run: docker pull ${{ vars.DOCKERHUB_USERNAME}}/tweb:latest
|