name: dockerize-runtime-nodejs on: workflow_dispatch: push: tags: - v*.*.* branches: - main paths: - "runtimes/nodejs/**" - ".github/workflows/dockerize-runtime-nodejs.yml" - "!**/*.md" - "!runtimes/nodejs/package-lock.json" concurrency: group: dockerize-runtime-nodejs-${{ github.ref }} cancel-in-progress: true jobs: dockerize-main-image: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Use Node uses: actions/setup-node@v3 with: node-version: 18.x - name: Install Package working-directory: runtimes/nodejs run: npm cache clean --force && npm install typescript -g && npm install --omit=dev - name: Build Packages working-directory: runtimes/nodejs run: npm run build - name: Docker meta id: meta uses: docker/metadata-action@v4 with: images: | ghcr.io/${{ github.repository_owner }}/runtime-node docker.io/${{ secrets.DOCKER_USERNAME }}/runtime-node # https://github.com/docker/metadata-action#typesemver tags: | type=semver,pattern={{version}} type=raw,value=latest,enable=true type=sha,enable=true,format=short - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to Github Container Hub uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v3 with: context: ./runtimes/nodejs file: ./runtimes/nodejs/Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64, linux/arm64 dockerize-init-image: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Use Node uses: actions/setup-node@v3 with: node-version: 18.x - name: Install Package working-directory: runtimes/nodejs run: npm cache clean --force && npm install typescript -g && npm install --omit=dev - name: Build Packages working-directory: runtimes/nodejs run: npm run build - name: Docker meta id: meta uses: docker/metadata-action@v4 with: images: | ghcr.io/${{ github.repository_owner }}/runtime-node-init docker.io/${{ secrets.DOCKER_USERNAME }}/runtime-node-init # https://github.com/docker/metadata-action#typesemver tags: | type=semver,pattern={{version}} type=raw,value=latest,enable=true type=sha,enable=true,format=short - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to Github Container Hub uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v3 with: context: ./runtimes/nodejs file: ./runtimes/nodejs/Dockerfile.init push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} platforms: linux/amd64, linux/arm64