Skip to content

fix: file watcher paths #281

fix: file watcher paths

fix: file watcher paths #281

Workflow file for this run

name: Build new version
on:
push:
branches: [master]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "^1.21"
- run: make test-integration-docker
name: Run integration tests inside Docker
- run: make test
name: Unit tests
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "^1.21"
- run: make build
name: Build
- run: make build-plugins
name: Build plugins
- uses: actions/upload-artifact@v4
name: Upload build artifacts
with:
name: build-artifacts
path: |
bin/druid
bin/druid_rcon
bin/druid_rcon_web_rust
.docker/entrypoint.sh
.docker/druid-install-command.sh
release:
runs-on: ubuntu-latest
needs: [test, build]
outputs:
version: ${{ steps.version.outputs.version }}
version_tag: ${{ steps.version.outputs.version_tag }}
increment: ${{ steps.version.outputs.increment }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: paulhatch/semantic-version@v5.4.0
id: version
with:
bump_each_commit: true
- run: make build
name: Build
env:
VERSION: ${{ steps.version.outputs.version_tag }}
- run: make build-plugins
name: Build plugins
- name: Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.version_tag }}
prerelease: ${{ steps.version.outputs.increment != 0 }}
make_latest: true
files: |
bin/druid
bin/druid_rcon
bin/druid_rcon_web_rust
.docker/entrypoint.sh
.docker/druid-install-command.sh
docker-base-amd64:
needs: release
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile
runs_on: ubuntu-latest
tags: |
highcard/druid:${{ needs.release.outputs.version_tag }}-amd64
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-amd64
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-base-arm64:
needs: release
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile
runs_on: ubuntu-24.04-arm
tags: |
highcard/druid:${{ needs.release.outputs.version_tag }}-arm64
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-arm64
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-base-manifest:
name: Create multi-arch base manifests
needs: [release, docker-base-amd64, docker-base-arm64]
runs-on: ubuntu-latest
if: ${{ needs.release.outputs.version != '' }}
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create and push base manifests
uses: Noelware/docker-manifest-action@v1
with:
inputs: highcard/druid:${{ needs.release.outputs.version_tag }}-amd64,highcard/druid:${{ needs.release.outputs.version_tag }}-arm64
tags: >-
highcard/druid:latest,
highcard/druid:stable,
highcard/druid:${{ needs.release.outputs.version }},
highcard/druid:${{ needs.release.outputs.version_tag }}
push: true
docker-base-manifest-artifacts:
name: Create multi-arch base manifests (artifacts registry)
needs: [release, docker-base-amd64, docker-base-arm64]
runs-on: ubuntu-latest
if: ${{ needs.release.outputs.version != '' }}
steps:
- name: Login to Artifacts Registry
uses: docker/login-action@v3
with:
registry: artifacts.druid.gg
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
- name: Create and push base manifests (artifacts)
uses: Noelware/docker-manifest-action@v1
with:
inputs: artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-arm64
tags: >-
artifacts.druid.gg/druid-team/druid:latest,
artifacts.druid.gg/druid-team/druid:stable,
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }},
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}
push: true
docker-steamcmd:
needs: [release, docker-base-manifest, docker-base-manifest-artifacts]
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile.steamcmd
tags: |
highcard/druid:latest-steamcmd
highcard/druid:stable-steamcmd
highcard/druid:${{ needs.release.outputs.version }}-steamcmd
highcard/druid:${{ needs.release.outputs.version_tag }}-steamcmd
artifacts.druid.gg/druid-team/druid:latest-steamcmd
artifacts.druid.gg/druid-team/druid:stable-steamcmd
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-steamcmd
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-steamcmd
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-nix-amd64:
needs: [release, docker-base-manifest, docker-base-manifest-artifacts]
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile.nix
runs_on: ubuntu-latest
tags: |
highcard/druid:${{ needs.release.outputs.version_tag }}-nix-amd64
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-amd64
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-nix-arm64:
needs: [release, docker-base-manifest, docker-base-manifest-artifacts]
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile.nix
runs_on: ubuntu-24.04-arm
tags: |
highcard/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-nix-steamcmd:
needs: [release, docker-steamcmd]
uses: ./.github/workflows/docker-build-reusable.yml
with:
dockerfile: Dockerfile.nix
tags: |
highcard/druid:latest-nix-steamcmd
highcard/druid:stable-nix-steamcmd
highcard/druid:${{ needs.release.outputs.version }}-nix-steamcmd
highcard/druid:${{ needs.release.outputs.version_tag }}-nix-steamcmd
artifacts.druid.gg/druid-team/druid:latest-nix-steamcmd
artifacts.druid.gg/druid-team/druid:stable-nix-steamcmd
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-nix-steamcmd
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-steamcmd
build_args: |
VERSION=${{ needs.release.outputs.version_tag }}-steamcmd
secrets:
DOCKERHUB_USERNAME: ${{ vars.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
DRUID_ARTIFACTS_REGISTRY_USERNAME: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
DRUID_ARTIFACTS_REGISTRY_TOKEN: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
docker-nix-manifest:
name: Create multi-arch nix manifests
needs: [release, docker-nix-amd64, docker-nix-arm64]
runs-on: ubuntu-latest
if: ${{ needs.release.outputs.version != '' }}
steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ vars.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Create and push nix manifests
uses: Noelware/docker-manifest-action@v1
with:
inputs: highcard/druid:${{ needs.release.outputs.version_tag }}-nix-amd64,highcard/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
tags: >-
highcard/druid:latest-nix,
highcard/druid:stable-nix,
highcard/druid:${{ needs.release.outputs.version }}-nix,
highcard/druid:${{ needs.release.outputs.version_tag }}-nix
push: true
docker-nix-manifest-artifacts:
name: Create multi-arch nix manifests (artifacts registry)
needs: [release, docker-nix-amd64, docker-nix-arm64]
runs-on: ubuntu-latest
if: ${{ needs.release.outputs.version != '' }}
steps:
- name: Login to Artifacts Registry
uses: docker/login-action@v3
with:
registry: artifacts.druid.gg
username: ${{ vars.DRUID_ARTIFACTS_REGISTRY_USERNAME }}
password: ${{ secrets.DRUID_ARTIFACTS_REGISTRY_TOKEN }}
- name: Create and push nix manifests (artifacts)
uses: Noelware/docker-manifest-action@v1
with:
inputs: artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-amd64,artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix-arm64
tags: >-
artifacts.druid.gg/druid-team/druid:latest-nix,
artifacts.druid.gg/druid-team/druid:stable-nix,
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version }}-nix,
artifacts.druid.gg/druid-team/druid:${{ needs.release.outputs.version_tag }}-nix
push: true