name: Release on: push: branches: [deploy/release,deploy/force-release] jobs: build-and-push-docker-image: name: Build and publish to PyPi and DockerHub runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup Node uses: actions/setup-node@v2 with: node-version: '12' - name: Install JS dependencies run: npm install - name: Build JS run: npm run build:prod - name: Setup Python uses: actions/setup-python@v2 with: python-version: '3.7' - name: "Install Python dependencies" run: python3 -m pip install build - name: "Build Python package" run: python3 -m build - name: Set up Docker Buildx id: 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: Login to Github Packages uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHCR_PAT }} - name: Build image and push to Docker Hub and GitHub Container Registry uses: docker/build-push-action@v2 with: context: . tags: | jaedb/iris:latest # build on feature branches, push only on master branch push: ${{ github.ref == 'refs/heads/master' }} - name: Publish to Pypi uses: pypa/gh-action-pypi-publish@v1.4.1 with: user: __token__ password: ${{ secrets.PYPI_TOKEN }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}