Skip to content

add ci/cd build docker image #1

add ci/cd build docker image

add ci/cd build docker image #1

Workflow file for this run

name: ci
on:
push:
branches:
- "master"
tags:
- "*"
env:
BASE_IMAGE: crosslanguagesoccerframework/rcssserver
BASE_TAG: latest
jobs:
docker:
runs-on: ubuntu-latest
name: Build & Push Docker
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Find CMakeLists.txt version
id: cmake_version
run: |
cmake_version=$(grep -oP 'project\(.* VERSION \K[0-9]+\.[0-9]+\.[0-9]+' CMakeLists.txt)
echo "::set-output name=version::${cmake_version}"
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push RCSSServer
uses: docker/build-push-action@v5
with:
context: .
file: ./utils/docker/Dockerfile
push: true
tags: "${{ env.BASE_IMAGE }}:latest,${{ env.BASE_IMAGE }}:ubuntu-24-${{ github.ref_name }}-${{ steps.cmake_version.outputs.version }}"
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: ${{ env.BASE_IMAGE }}
readme-filepath: utils/docker/README.md
short-description: "RoboCup Soccer Simulator Server"
app-image:
runs-on: ubuntu-latest
name: Build AppImage
steps:
- uses: actions/checkout@v4
- name: Create release folder
run: |
mkdir -p ${{ github.workspace }}/artifact
# ------------------------------------------- Ubuntu 20.04 AppImage
- name: Prepare builder image for 20.04
run: |
docker build -t builder-image:2004 -f ./utils/appimage/Dockerfile.builder-2004 .
- name: Build app image on 20.04
run: |
docker run --privileged --name builder-2004 \
builder-image:2004 /rcssserver/utils/appimage/build_appimage.sh
docker cp builder-2004:/rcssserver-x86_64.AppImage ${{ github.workspace }}/artifact/rcssserver-x86_64-2004.AppImage
# ------------------------------------------- Artifact
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: rcssserver-x86_64
path: ${{ github.workspace }}/artifact/*
retention-days: 5
# ------------------------------------------- Release
- uses: ncipollo/release-action@v1
if: startsWith(github.ref, 'refs/tags/')
with:
artifacts: "${{ github.workspace }}/artifact/*"
token: ${{ secrets.GITHUB_TOKEN }}
# tag text is like "v1.2.3" so we need to remove the "v" from the tag
tag: "${{ github.ref_name }}"