name: 'Publish the DMS Container Image' on: workflow_call: inputs: cache-key: required: true type: string permissions: contents: read packages: write jobs: publish-images: name: 'Publish' runs-on: ubuntu-20.04 steps: - name: 'Checkout' uses: actions/checkout@v3 with: submodules: recursive - name: 'Prepare tags' id: prep uses: docker/metadata-action@v4.0.1 with: images: | ${{ secrets.DOCKER_REPOSITORY }} ${{ secrets.GHCR_REPOSITORY }} tags: | type=edge,branch=master type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}}.{{minor}}.{{patch}} - name: 'Set up QEMU' uses: docker/setup-qemu-action@v2 with: platforms: arm64,arm - name: 'Set up Docker Buildx' uses: docker/setup-buildx-action@v2 # Try get the cached build layers from a prior `generic_build.yml` job. # NOTE: Until adopting `type=gha` scoped cache exporter (in `docker/build-push-action`), # only AMD64 image is expected to be cached, ARM images will build from scratch. - name: 'Retrieve image build from build cache' uses: actions/cache@v3 with: path: /tmp/.buildx-cache key: cache-buildx-${{ inputs.cache-key }} restore-keys: | cache-buildx- - name: 'Login to DockerHub' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: 'Login to GitHub Container Registry' uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: 'Acquire the image version' id: get-version shell: bash run: echo "::set-output name=version::$(