From 2e8718adb6e63d688e99bcf3bdcd4a2e279458c2 Mon Sep 17 00:00:00 2001 From: William Miceli Date: Sun, 18 Aug 2024 23:24:18 -0400 Subject: [PATCH] Functional --- .drone.yml | 105 ----------- .gitea/workflows/build.yaml | 229 ++++++++++++++++++++++ .gitea/workflows/build.yaml.DISABLED | 272 +++++++++++++++++++++++++++ Dockerfile | 12 +- README.md | 12 +- 5 files changed, 515 insertions(+), 115 deletions(-) delete mode 100644 .drone.yml create mode 100644 .gitea/workflows/build.yaml create mode 100644 .gitea/workflows/build.yaml.DISABLED diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index 0985104..0000000 --- a/.drone.yml +++ /dev/null @@ -1,105 +0,0 @@ -kind: pipeline -type: kubernetes -name: default - -trigger: - branch: - - main - event: - - push - -services: -- name: docker - image: docker.io/library/docker:25.0.3-git - privileged: true - volumes: - - name: dockersock - path: /var/run - -steps: - -- name: get-app-version - image: steamcmd/steamcmd:alpine-3 - commands: - - | - APP_BUILD_ID=$(steamcmd +login anonymous +app_info_print 1690800 +quit | \ - awk 'BEGIN { capture = 0; } \ - /"1690800"/ { capture = 1; } \ - capture && /"branches"/ { inBranches = 1; } \ - inBranches && /"public"/ { inPublic = 1; next; } \ - inPublic && /"buildid"/ { \ - gsub(/[^0-9]/, "", $0); print; exit; \ - }') - - echo "export APP_BUILD_ID=$${APP_BUILD_ID}" > /scratch/EXTRA_ENVIRONMENT - - cat /scratch/EXTRA_ENVIRONMENT - volumes: - - name: scratch - path: /scratch - -- name: build - image: docker.io/library/docker:25.0.3-git - commands: - - sleep 10 # give docker enough time to initialize - - > - docker image build - --build-arg DRONE_BUILD_STARTED=$DRONE_BUILD_STARTED - --build-arg DRONE_COMMIT_SHA=$DRONE_COMMIT_SHA - --tag image:latest - . - volumes: - - name: dockersock - path: /var/run - -- name: push-gitea - image: docker.io/library/docker:25.0.3-git - commands: - - source /scratch/EXTRA_ENVIRONMENT - - echo $GITEA_TOKEN | docker login git.williammiceli.systems --username $GITEA_USERNAME --password-stdin - - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:latest - - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:app_build_id-$${APP_BUILD_ID} - - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:ci_build-${DRONE_BUILD_NUMBER} - - docker image tag image:latest git.williammiceli.systems/william/docker_satisfactory-server:commit_sha-${DRONE_COMMIT_SHA:0:12} - - docker image push --all-tags git.williammiceli.systems/william/docker_satisfactory-server - depends_on: - - build - - get-app-version - environment: - GITEA_USERNAME: - from_secret: GITEA_USERNAME - GITEA_TOKEN: - from_secret: GITEA_TOKEN - volumes: - - name: dockersock - path: /var/run - - name: scratch - path: /scratch - -- name: push-dockerhub - image: docker.io/library/docker:25.0.3-git - commands: - - source /scratch/EXTRA_ENVIRONMENT - - echo $DOCKER_TOKEN | docker login docker.io --username $DOCKER_USERNAME --password-stdin - - docker image tag image:latest docker.io/williammiceli/satisfactory-server:latest - - docker image tag image:latest docker.io/williammiceli/satisfactory-server:app_build_id-$${APP_BUILD_ID} - - docker image tag image:latest docker.io/williammiceli/satisfactory-server:ci_build-${DRONE_BUILD_NUMBER} - - docker image tag image:latest docker.io/williammiceli/satisfactory-server:commit_sha-${DRONE_COMMIT_SHA:0:12} - - docker image push --all-tags docker.io/williammiceli/satisfactory-server - depends_on: - - build - - get-app-version - environment: - DOCKER_USERNAME: - from_secret: DOCKER_USERNAME - DOCKER_TOKEN: - from_secret: DOCKER_TOKEN - volumes: - - name: dockersock - path: /var/run - - name: scratch - path: /scratch - -volumes: -- name: dockersock - temp: {} -- name: scratch - temp: {} \ No newline at end of file diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..7e78412 --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,229 @@ +name: Build and Push + +on: [push] + +jobs: + get-steam-app-version: + runs-on: ubuntu-latest + outputs: + APP_BUILD_ID: ${{steps.get_app_build_id.outputs.APP_BUILD_ID}} + + steps: + + - name: DEBUG1 + run: | + echo "CI_DOCKER_USERNAME: ${{vars.DOCKER_USERNAME}}" + echo "Repo Owner: ${{GITHUB.event.repository.owner.login}}" + echo "CONTAINER_NAME: ${{vars.CONTAINER_NAME}}" + + - name: Install SteamCMD Dependencies + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y lib32gcc-s1 wget ca-certificates + + - name: Download and Extract SteamCMD + run: | + mkdir -p ~/Steam && cd ~/Steam + wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz + tar -xvzf steamcmd_linux.tar.gz + + - name: Get APP_BUILD_ID + id: get_app_build_id + run: | + cd ~/Steam + APP_BUILD_ID=$(./steamcmd.sh +login anonymous +app_info_print 1690800 +quit | \ + awk 'BEGIN { capture = 0; } \ + /"1690800"/ { capture = 1; } \ + capture && /"branches"/ { inBranches = 1; } \ + inBranches && /"public"/ { inPublic = 1; next; } \ + inPublic && /"buildid"/ { \ + gsub(/[^0-9]/, "", $0); print; exit; \ + }') + export GITEA_OUTPUT="${GITEA_OUTPUT:+$GITEA_OUTPUT:}APP_BUILD_ID=$APP_BUILD_ID" + echo "APP_BUILD_ID=$APP_BUILD_ID" + echo "APP_BUILD_ID=$APP_BUILD_ID" >> "$GITHUB_OUTPUT" + + build: + runs-on: ubuntu-latest + container: + image: docker.io/library/ubuntu:latest + options: + --privileged + --add-host ${{env.DIND_SERVICE_HOSTNAME}}:${{env.DIND_SERVICE_IP}} + volumes: + - /artifacts/:/artifacts/ + - /certs/client/:/certs/client/ + env: + DOCKER_HOST: tcp://${{env.DIND_SERVICE_HOSTNAME}}:2376 + DOCKER_TLS_VERIFY: '1' + DOCKER_CERT_PATH: /certs/client/ + CONTAINER_NAME: satisfactory-server + + steps: + - name: Install Required Build Tools + run: | + apt-get update + + # Install Git + apt-get install git -y + + # Install Docker (https://docs.docker.com/engine/install/ubuntu/) + apt-get install ca-certificates curl -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y + + - name: Checkout Code + run: | + pwd + git clone ${{GITHUB.server_url}}/${{GITHUB.repository}}.git ./ + pwd + git checkout ${{GITHUB.sha}} --recurse-submodules + pwd + + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(GITHUB) }} + run: echo "$GITHUB_CONTEXT" + + - name: Clean Old Images + continue-on-error: true + run: | + docker rmi --force $(docker images --quiet '${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}' | uniq) + || docker rmi --force $(docker images --quiet '${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}' | uniq) + + - name: Create Docker OCI Builder + run: | + docker context create buildx-build + docker buildx create --name ${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}} --driver docker-container --use --bootstrap buildx-build + docker buildx inspect ${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}} --bootstrap + + - name: Build Docker Image + run: | + pwd + mkdir -p /artifacts/${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}}/ + docker buildx build \ + --builder ${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}} \ + --platform=linux/amd64 \ + --tag image:latest \ + --file Dockerfile \ + --build-arg CI_BUILD_STARTED=${{GITHUB.event.commits.timestamp}} \ + --build-arg COMMIT_SHA=${{GITHUB.sha}} \ + --output type=oci,dest=- \ + . > /artifacts/${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}}/image.tar + ls -AhlR /artifacts/ + + - name: Remove Docker OCI Builder + if: always() + run: | + docker buildx rm ${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}} + + push: + needs: [get-steam-app-version, build] + runs-on: ubuntu-latest + container: + image: docker.io/library/ubuntu:latest + options: + --privileged + --add-host ${{env.DIND_SERVICE_HOSTNAME}}:${{env.DIND_SERVICE_IP}} + volumes: + - /artifacts/:/artifacts/ + - /certs/client/:/certs/client/ + env: + DOCKER_HOST: tcp://${{env.DIND_SERVICE_HOSTNAME}}:2376 + DOCKER_TLS_VERIFY: '1' + DOCKER_CERT_PATH: /certs/client/ + CONTAINER_NAME: satisfactory-server + + steps: + - name: Dump environment context + env: + ENV_CONTENT: ${{ toJson(env) }} + run: echo "$ENV_CONTENT" + + - name: Debug hostnames + run: | + apt-get update + apt-get install dnsutils iproute2 net-tools -y --no-install-recommends + cat /etc/hosts + hostname -I + ip a + host gitearunner-service-docker.personal-16-1.svc.cluster.local + host gitearunner-service-docker + + netstat -ntlp + + - name: Check Artifacts + run: | + ls -AhlR /artifacts/ + + - name: Install Docker Client + run: | + apt-get update + + # Install Docker (https://docs.docker.com/engine/install/ubuntu/) + apt-get install ca-certificates curl -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y + + - name: Check Connection to Docker Engine + run: | + docker info + + - name: Load Image Into Docker Engine + run: | + docker image import /artifacts/${{GITHUB.event.repository.name}}_Run-${{GITHUB.run_number}}/image.tar image:latest + docker image ls + + - name: CLI Login to Gitea Registry + run: | + echo ${{secrets.CI_GITEA_TOKEN}} | docker login gitea.williammiceli.systems --username ${{vars.PACKAGE_OWNER_USERNAME}} --password-stdin + + - name: Tag and Push to Gitea Registry + run: | + docker tag image:latest gitea.williammiceli.systems/$(echo "${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}" | awk '{print tolower($0)}'):latest + docker tag image:latest gitea.williammiceli.systems/$(echo "${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}" | awk '{print tolower($0)}'):app_build_id-${APP_BUILD_ID} + docker tag image:latest gitea.williammiceli.systems/$(echo "${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}" | awk '{print tolower($0)}'):ci_build-${{GITHUB.run_number}} + docker tag image:latest gitea.williammiceli.systems/$(echo "${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}" | awk '{print tolower($0)}'):commit_sha-${{GITHUB.sha}} + docker image ls + docker push --all-tags gitea.williammiceli.systems/$(echo "${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}" | awk '{print tolower($0)}') + env: + APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} + + - name: CLI Login to Docker Hub Registry + run: | + echo ${{secrets.CI_DOCKER_TOKEN}} | docker login docker.io --username ${{vars.DOCKER_USERNAME}} --password-stdin + + - name: Tag and Push to Docker Hub + run: | + docker tag image:latest ${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}:latest + docker tag image:latest ${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}:app_build_id-${APP_BUILD_ID} + docker tag image:latest ${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}:ci_build-${{GITHUB.run_number}} + docker tag image:latest ${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}:commit_sha-${{GITHUB.sha}} + docker image ls + docker push --all-tags ${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}} + env: + APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} + + - name: Clean Old Images + if: always() + continue-on-error: true + run: | + docker rmi --force $(docker images --quiet '${{vars.DOCKER_USERNAME}}/${{vars.CONTAINER_NAME}}' | uniq) + || docker rmi --force $(docker images --quiet '${{vars.PACKAGE_OWNER_USERNAME}}/${{vars.CONTAINER_NAME}}' | uniq) diff --git a/.gitea/workflows/build.yaml.DISABLED b/.gitea/workflows/build.yaml.DISABLED new file mode 100644 index 0000000..01263c8 --- /dev/null +++ b/.gitea/workflows/build.yaml.DISABLED @@ -0,0 +1,272 @@ +name: Build and Push + +on: [push] + +jobs: + get-steam-app-version: + runs-on: ubuntu-latest + outputs: + APP_BUILD_ID: ${{steps.get_app_build_id.outputs.APP_BUILD_ID}} + + steps: + - name: Install SteamCMD Dependencies + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y lib32gcc-s1 wget ca-certificates + + - name: Download and Extract SteamCMD + run: | + mkdir -p ~/Steam && cd ~/Steam + wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz + tar -xvzf steamcmd_linux.tar.gz + + - name: Get APP_BUILD_ID + id: get_app_build_id + run: | + cd ~/Steam + APP_BUILD_ID=$(./steamcmd.sh +login anonymous +app_info_print 1690800 +quit | \ + awk 'BEGIN { capture = 0; } \ + /"1690800"/ { capture = 1; } \ + capture && /"branches"/ { inBranches = 1; } \ + inBranches && /"public"/ { inPublic = 1; next; } \ + inPublic && /"buildid"/ { \ + gsub(/[^0-9]/, "", $0); print; exit; \ + }') + export GITEA_OUTPUT="${GITEA_OUTPUT:+$GITEA_OUTPUT:}APP_BUILD_ID=$APP_BUILD_ID" + echo "APP_BUILD_ID=$APP_BUILD_ID" >> "$GITHUB_OUTPUT" + echo "GITEA_OUTPUT=$GITEA_OUTPUT" + echo "GITHUB_OUTPUT=$GITHUB_OUTPUT" + + build: + runs-on: ubuntu-latest + container: + image: docker.io/library/ubuntu:latest + options: + --privileged + volumes: + - /artifacts/:/artifacts/ + - /certs/client/:/certs/client/ + env: + KUBECONFIG: /secrets/kubeconfig-buildx.yaml + + steps: + - name: Check Certs + run: | + ls -AhlR /certs/ + + - name: Dump environment context + env: + ENV_CONTENT: ${{ toJson(env) }} + run: echo "$ENV_CONTENT" + + - name: Debug hostnames + run: | + apt-get update + apt-get install dnsutils iproute2 net-tools -y --no-install-recommends + cat /etc/hosts + hostname -I + ip a + host gitearunner-service-docker.personal-16-1.svc.cluster.local + host gitearunner-service-docker + + netstat -ntlp + + - name: Check Kubeconfig + run: | + echo "HOME=$HOME" + ls -AhlR /$HOME + echo "done" + + - name: Install Required Build Tools + run: | + apt-get update + + # Install Git + apt-get install git -y + + # Install Docker (https://docs.docker.com/engine/install/ubuntu/) + apt-get install ca-certificates curl -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y + + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + + - name: Checkout Code + run: | + pwd + git clone ${{github.server_url}}/${{github.repository}}.git ./ + pwd + git checkout ${{github.sha}} --recurse-submodules + pwd + + - name: Setup Docker Builder Container + run: | + docker buildx create \ + --bootstrap \ + --driver kubernetes \ + --name gitearunner_${{github.event.repository.name}}_Run-${{github.run_number}}_Job-${{github.job}} \ + --driver-opt namespace=personal-16-1,rootless=true + + - name: Check Dockerfile + run: | + pwd + ls -AhlR ./ + + - name: Build Docker Image + run: | + pwd + mkdir -p /artifacts/${{github.event.repository.name}}_run${{github.run_number}}/ + docker buildx build \ + --builder gitearunner_${{github.event.repository.name}}_Run-${{github.run_number}}_Job-${{github.job}} \ + --platform=linux/amd64 \ + --tag image:latest \ + --file Dockerfile \ + --build-arg CI_BUILD_STARTED=${{github.event.commits.timestamp}} \ + --build-arg COMMIT_SHA=${{github.sha}} \ + --output type=tar,dest=- \ + . > /artifacts/${{github.event.repository.name}}_run${{github.run_number}}/image.tar + ls -AhlR /artifacts/ + + - name: Remove Docker Builder Container + if: always() + run: | + docker buildx rm --force gitearunner_${{github.event.repository.name}}_Run-${{github.run_number}}_Job-${{github.job}} + + push: + needs: [get-steam-app-version, build] + runs-on: ubuntu-latest + container: + image: docker.io/library/ubuntu:latest + options: + --privileged + --add-host ${{env.DIND_SERVICE_HOSTNAME}}:${{env.DIND_SERVICE_IP}} + volumes: + - /certs/client/:/certs/client/ + - /artifacts/:/artifacts/ + env: + DOCKER_HOST: tcp://${{env.DIND_SERVICE_HOSTNAME}}:2376 + DOCKER_TLS_VERIFY: '1' + DOCKER_CERT_PATH: /certs/client/ + + steps: + - name: Check Artifacts + run: | + ls -AhlR /artifacts/ + + - name: Install Required Build Tools + run: | + apt-get update + + # Install Git + apt-get install git -y + + # Install Docker (https://docs.docker.com/engine/install/ubuntu/) + apt-get install ca-certificates curl -y + install -m 0755 -d /etc/apt/keyrings + curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc + chmod a+r /etc/apt/keyrings/docker.asc + + echo \ + "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ + $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ + tee /etc/apt/sources.list.d/docker.list > /dev/null + apt-get update + apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y + + - name: Check Connection to Docker Engine + run: | + docker info + + - name: Load Image Into Docker Engine + run: | + docker image load --input /artifacts/${{github.event.repository.name}}_run${{github.run_number}}/image.tar + docker image ls + + - name: CLI Login to Gitea Registry + run: | + echo ${{secrets.CI_GITEA_TOKEN}} | docker login gitea.williammiceli.systems --username ${{secrets.CI_GITEA_USERNAME}} --password-stdin + + - name: Tag and Push to Gitea Registry + run: | + docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:latest + docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:app_build_id-${APP_BUILD_ID} + docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:ci_build-${{gitea.run_number}} + docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:commit_sha-${{gitea.sha}} + docker push --all-tags gitea.williammiceli.systems/william/docker_satisfactory-server + env: + APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} + + - name: CLI Login to Docker Hub Registry + run: | + echo ${{secrets.CI_DOCKER_TOKEN}} | docker login gitea.williammiceli.systems --username ${{secrets.CI_DOCKER_USERNAME}} --password-stdin + + - name: Tag and Push to Docker Hub + run: | + docker tag image:latest williammiceli/satisfactory-server:latest + docker tag image:latest williammiceli/satisfactory-server:app_build_id-${APP_BUILD_ID} + docker tag image:latest williammiceli/satisfactory-server:ci_build-${{gitea.run_number}} + docker tag image:latest williammiceli/satisfactory-server:commit_sha-${{gitea.sha}} + docker push --all-tags williammiceli/satisfactory-server + env: + APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} + + + # push2: + # needs: build + # runs-on: ubuntu-latest + + # steps: + # - name: Check Artifacts + # if: always() + # run: | + # ls -AhlR /artifacts/ + + # - name: Load Image Into Docker Engine + # if: always() + # run: | + # docker image load --input /artifacts/${{github.event.repository.name}}_run${{github.run_number}}/image.tar + # docker image ls + + # - name: CLI Login to Gitea Registry + # if: always() + # run: | + # echo ${{secrets.CI_GITEA_TOKEN}} | docker login gitea.williammiceli.systems --username ${{secrets.CI_GITEA_USERNAME}} --password-stdin + + # - name: Tag and Push to Gitea Registry + # if: always() + # run: | + # docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:latest + # docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:app_build_id-${APP_BUILD_ID} + # docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:ci_build-${{gitea.run_number}} + # docker tag image:latest gitea.williammiceli.systems/william/docker_satisfactory-server:commit_sha-${{gitea.sha}} + # docker push --all-tags gitea.williammiceli.systems/william/docker_satisfactory-server + # env: + # APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} + + # - name: CLI Login to Docker Hub Registry + # if: always() + # run: | + # echo ${{secrets.CI_DOCKER_TOKEN}} | docker login gitea.williammiceli.systems --username ${{secrets.CI_DOCKER_USERNAME}} --password-stdin + + # - name: Tag and Push to Docker Hub + # if: always() + # run: | + # docker tag image:latest williammiceli/satisfactory-server:latest + # docker tag image:latest williammiceli/satisfactory-server:app_build_id-${APP_BUILD_ID} + # docker tag image:latest williammiceli/satisfactory-server:ci_build-${{gitea.run_number}} + # docker tag image:latest williammiceli/satisfactory-server:commit_sha-${{gitea.sha}} + # docker push --all-tags williammiceli/satisfactory-server + # env: + # APP_BUILD_ID: ${{needs.get-steam-app-version.outputs.APP_BUILD_ID}} diff --git a/Dockerfile b/Dockerfile index 767c8f8..7558db3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,8 +17,8 @@ RUN dpkg --add-architecture i386 && \ # Add unicode support RUN locale-gen en_US.UTF-8 -ENV LANG 'en_US.UTF-8' -ENV LANGUAGE 'en_US:en' +ENV LANG='en_US.UTF-8' +ENV LANGUAGE='en_US:en' # Create user for SteamCMD RUN useradd -m steam @@ -49,9 +49,9 @@ VOLUME ["/persistent"] CMD ["/home/steam/satisfactory_server/FactoryServer.sh"] # Labels -ARG DRONE_BUILD_STARTED -ARG DRONE_COMMIT_SHA +ARG CI_BUILD_STARTED +ARG COMMIT_SHA LABEL org.opencontainers.image.authors="William Miceli; https://github.com/WilliamMiceli; https://williammiceli.me" -LABEL org.opencontainers.image.created=$DRONE_BUILD_STARTED -LABEL org.opencontainers.image.revision=$DRONE_COMMIT_SHA +LABEL org.opencontainers.image.created=$CI_BUILD_STARTED +LABEL org.opencontainers.image.revision=$COMMIT_SHA LABEL org.opencontainers.image.source=https://github.com/WilliamMiceli/Docker_Satisfactory-Server diff --git a/README.md b/README.md index b9c7c42..050e361 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ -[![Drone Build Status](https://img.shields.io/drone/build/William/Docker_Satisfactory-Server?server=https%3A%2F%2Fdrone.williammiceli.systems&style=for-the-badge&label=Build%20Status)](https://drone.williammiceli.systems/William/Docker_Satisfactory-Server) +![Gitea Build Status](https://gitea.williammiceli.systems/William/Docker_Satisfactory-Server/actions/workflows/build.yaml/badge.svg?branch=main) [![Docker Image Size](https://img.shields.io/docker/image-size/williammiceli/satisfactory-server?style=for-the-badge)](https://hub.docker.com/r/williammiceli/satisfactory-server) +[![Docker Pulls](https://img.shields.io/docker/pulls/williammiceli/satisfactory-server?style=for-the-badge)](https://hub.docker.com/r/williammiceli/satisfactory-server) +[![Docker Stars](https://img.shields.io/docker/stars/williammiceli/satisfactory-server?style=for-the-badge)](https://hub.docker.com/r/williammiceli/satisfactory-server) +[![Docker Image Version](https://img.shields.io/docker/v/williammiceli/satisfactory-server?sort=date&style=for-the-badge)](https://hub.docker.com/r/williammiceli/satisfactory-server) + + ![Satisfactory Logo](https://img2.storyblok.com/fit-in/0x300/filters:format(webp)/f/110098/5405x1416/10decfbcac/hero-logo.png) @@ -78,15 +83,14 @@ docker image pull williammiceli/satisfactory-server:latest steamcmd +force_install_dir /home/steam/satisfactory_server +login anonymous +app_update 1690800 -beta public validate +quit ``` -![Player Thumbs Up](https://img2.storyblok.com/fit-in/0x800/filters:format(png)/f/110098/600x730/99e92fe34f/hero-graphic.png) +![Game Character Thumbs Up](https://img2.storyblok.com/fit-in/0x800/filters:format(png)/f/110098/600x730/99e92fe34f/hero-graphic.png) # Meta * [Docker Hub](https://hub.docker.com/r/williammiceli/satisfactory-server) -* [Build System](https://drone.williammiceli.systems/William/Docker_Satisfactory-Server) -## Credits for Useful References +## Credits for Useful References/Resources * https://openai.com/chatgpt * https://github.com/steamcmd/docker