name: docker hub # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the main branch push: branches: [ master ] pull_request: branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains multiple jobs build_test: # The type of runner that the job will run on runs-on: ubuntu-latest strategy: matrix: node-version: [14.x] # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v3 - name: setup node uses: actions/setup-node@master with: node-version: ${{ matrix.node-version }} # install applicaion dependencies - name: Install dependencies run: | npm install npm ci # build and test the apps - name: build run: | npm run build push_to_Docker_Hub: # The type of runner that the job will run on runs-on: ubuntu-latest # build docker image and push to docker hub # only if the app build and test successfully needs: [build_test] steps: - name: checkout repo uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v2 with: context: ./ file: ./Dockerfile push: true tags: ${{ secrets.DOCKERHUB_USERNAME }}/jandapress:latest - name: Run the image in a container uses: addnab/docker-run-action@v3 with: image: ${{ secrets.DOCKERHUB_USERNAME }}/jandapress:latest run: | echo "runing the docker image" echo ${{ steps.docker_build.outputs.digest }}