Skip to content

Extract docker job into reusable workflow #596

Extract docker job into reusable workflow

Extract docker job into reusable workflow #596

Workflow file for this run

on:
push:
branches:
- 'main'
tags:
- 'visualizer/v*'
paths:
- visualizer/**
- .github/workflows/visualizer.yml
- .github/actions/deps/**
- .github/workflows/docker-build-push.yml
pull_request:
paths:
- visualizer/**
- .github/workflows/visualizer.yml
- .github/actions/deps/**
- .github/workflows/docker-build-push.yml
name: Test, lint and docker (visualizer)
env:
REGISTRY: ghcr.io
IMAGE_NAME: blockscout/visualizer
defaults:
run:
working-directory: visualizer
jobs:
push:
name: Docker build and docker push
# needs:
# - test
# - lint
# if: |
# always() &&
# (needs.test.result == 'success' || needs.test.result == 'cancelled') &&
# (needs.lint.result == 'success' || needs.lint.result == 'cancelled')
# timeout-minutes: 300
uses: ./.github/workflows/docker-build-push.yml

Check failure on line 40 in .github/workflows/visualizer.yml

View workflow run for this annotation

GitHub Actions / Test, lint and docker (visualizer)

Invalid workflow file

The workflow is not valid. .github/workflows/visualizer.yml (Line: 40, Col: 11): Input service-name is required, but not provided while calling.
with:
registry: ghcr.io
image-name: blockscout/visualizer
# test:
# name: Unit, doc and integration tests
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
#
# - name: Install deps
# uses: ./.github/actions/deps
#
# - uses: actions/setup-node@v3
# with:
# node-version: 16
#
# - name: Install sol2uml
# run: |
# npm install phantom
# npm link [email protected] --only=production
#
# - name: Install toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# override: true
#
# - name: Rust cache
# uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# workspaces: visualizer -> target
#
# - name: Unit tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --lib --bins -- --nocapture
# if: success() || failure()
#
# - name: Doc tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --all-features --doc -- --skip proto
# if: success() || failure()
#
# - name: Integration tests
# run: RUST_BACKTRACE=1 RUST_LOG=info cargo test --locked --workspace --test '*' -- --nocapture
# if: success() || failure()
#
# lint:
# name: Linting
# runs-on: ubuntu-latest
# steps:
# - name: Checkout sources
# uses: actions/checkout@v4
#
# - name: Install deps
# uses: ./.github/actions/deps
#
# - name: Install toolchain
# uses: actions-rs/toolchain@v1
# with:
# toolchain: stable
# profile: minimal
# components: rustfmt, clippy
# override: true
#
# - uses: Swatinem/rust-cache@v2
# with:
# cache-on-failure: true
# workspaces: visualizer -> target
#
# - name: cargo fmt
# run: cargo fmt --all -- --check --config imports_granularity=Crate
#
# - name: cargo clippy
# run: cargo clippy --all --all-targets --all-features -- -D warnings
#
# push:
# name: Docker build and docker push
# needs:
# - test
# - lint
# if: |
# always() &&
# (needs.test.result == 'success' || needs.test.result == 'cancelled') &&
# (needs.lint.result == 'success' || needs.lint.result == 'cancelled')
# timeout-minutes: 300
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
#
# - uses: actions-ecosystem/action-regex-match@v2
# id: regex
# with:
# text: ${{ github.ref }}
# regex: '^(refs\/tags\/visualizer\/(v\d+\.\d+\.\d+))|(refs\/heads\/(main))$'
#
# - name: Extract tag name
# id: tags_extractor
# run: |
# t=${{ steps.regex.outputs.group2 }}
# m=${{ steps.regex.outputs.group4 }}
# (if ! [[ "$t" == "" ]]; then echo tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:$t, ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest; elif ! [[ "$m" == "" ]]; then echo tags=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:$m; else echo tags=; fi) >> $GITHUB_OUTPUT
#
# - name: Login to GitHub Container Registry
# uses: docker/login-action@v3
# with:
# registry: ${{ env.REGISTRY }}
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
#
# - name: Extract metadata for Docker
# id: meta
# uses: docker/metadata-action@v5
# with:
# images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
#
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Build and push
# uses: docker/build-push-action@v5
# with:
# context: "visualizer"
# file: "visualizer/Dockerfile"
# build-contexts: |
# proto=proto
# push: ${{ steps.tags_extractor.outputs.tags != '' }}
# tags: ${{ steps.tags_extractor.outputs.tags }}
# # platforms: |
# # linux/amd64
# # linux/arm64/v8
# labels: ${{ steps.meta.outputs.labels }}
# cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:build-cache
# cache-to: ${{ github.ref == 'refs/heads/main' && format('type=registry,ref={0}/{1}:build-cache,mode=max', env.REGISTRY, env.IMAGE_NAME) || '' }}