docker #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: docker | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | |
cancel-in-progress: true | |
on: | |
push: | |
tags: | |
- '*.*.*' | |
branches: | |
- master | |
paths: | |
- 'utils/docker/**' | |
- '.github/workflows/docker.yml' | |
pull_request: | |
paths: | |
- 'utils/docker/**' | |
- '.github/workflows/docker.yml' | |
schedule: | |
- cron: "0 0 */7 * *" | |
jobs: | |
prep: | |
name: Prepare docker env | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.prep.outputs.version }} | |
docker_image: ${{ steps.prep.outputs.docker_image }} | |
created: ${{ steps.prep.outputs.created }} | |
steps: | |
- name: Prepare docker env | |
id: prep | |
run: | | |
DOCKER_IMAGE=wasmedge/wasmedge | |
VERSION=noop | |
if [ "${{ github.event_name }}" = "schedule" ]; then | |
VERSION=nightly | |
elif [[ $GITHUB_REF == refs/tags/* ]]; then | |
VERSION=${GITHUB_REF#refs/tags/} | |
elif [[ $GITHUB_REF == refs/heads/* ]]; then | |
VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g') | |
if [ "${{ github.event.repository.default_branch }}" = "$VERSION" ]; then | |
VERSION=edge | |
fi | |
elif [[ $GITHUB_REF == refs/pull/* ]]; then | |
VERSION=pr-${{ github.event.number }} | |
fi | |
echo "version=$VERSION" >> $GITHUB_OUTPUT | |
echo "docker_image=$DOCKER_IMAGE" >> $GITHUB_OUTPUT | |
echo "created=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT | |
build-docker-images: | |
name: build-docker-images | |
needs: [prep] | |
runs-on: ubuntu-latest | |
container: | |
image: wasmedge/wasmedge:ci-image-base | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_ACCESS_TOKEN }} | |
- name: "Rebuild wasmedge/wasmedge:ci-image-base" | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.ci-image-base | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ci-image-base | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:ubuntu-base" | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.base | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ubuntu-base | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:ubuntu-build-clang" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:ubuntu-base | |
context: ./utils/docker | |
file: ./utils/docker/Dockerfile.build-clang | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ubuntu-build-clang | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:ubuntu-build-gcc" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:ubuntu-base | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.build-gcc | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ubuntu-build-gcc | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:ubuntu-build-clang-plugins-deps" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:ubuntu-build-clang | |
context: ./utils/docker | |
file: ./utils/docker/Dockerfile.build-plugins-deps | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ubuntu-build-clang-plugins-deps | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:ubuntu-build-gcc-plugins-deps" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:ubuntu-build-gcc | |
context: ./utils/docker | |
file: ./utils/docker/Dockerfile.build-plugins-deps | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:ubuntu-build-gcc-plugins-deps | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:latest" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:ubuntu-base | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.build-clang | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:latest | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
build-manylinux2014_x86_64: | |
name: build-manylinux2014_x86_64 | |
runs-on: ubuntu-latest | |
needs: [prep] | |
container: | |
image: wasmedge/wasmedge:ci-image-base | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_ACCESS_TOKEN }} | |
- name: "Rebuild wasmedge/wasmedge:manylinux2014_x86_64" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=quay.io/pypa/manylinux2014_x86_64 | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.manylinux2014_x86_64 | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:manylinux2014_x86_64 | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} | |
- name: "Rebuild wasmedge/wasmedge:manylinux2014_x86_64-plugins-deps" | |
uses: docker/build-push-action@v5 | |
with: | |
build-args: BASE=wasmedge/wasmedge:manylinux2014_x86_64 | |
context: ./utils/docker | |
file: utils/docker/Dockerfile.manylinux2014-build-plugins-deps | |
platforms: linux/amd64 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ needs.prep.outputs.docker_image }}:manylinux2014_x86_64-plugins-deps | |
labels: | | |
org.opencontainers.image.title=${{ github.event.repository.name }} | |
org.opencontainers.image.description=${{ github.event.repository.description }} | |
org.opencontainers.image.url=${{ github.event.repository.html_url }} | |
org.opencontainers.image.source=${{ github.event.repository.clone_url }} | |
org.opencontainers.image.version=${{ needs.prep.outputs.version }} | |
org.opencontainers.image.created=${{ needs.prep.outputs.created }} | |
org.opencontainers.image.revision=${{ github.sha }} |