From 125fd2242c88c7609f16f48e16b28b589124b79b Mon Sep 17 00:00:00 2001 From: casjay Date: Thu, 4 Jun 2026 16:22:24 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20Deleted=20workflow=20fi?= =?UTF-8?q?les=20=F0=9F=97=83=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit .gitea/workflows/docker.yaml .github/workflows/build-windows.yml .github/workflows/README.md --- .gitea/workflows/docker.yaml | 60 ---------- .github/workflows/README.md | 130 -------------------- .github/workflows/build-windows.yml | 176 ---------------------------- 3 files changed, 366 deletions(-) delete mode 100644 .gitea/workflows/docker.yaml delete mode 100644 .github/workflows/README.md delete mode 100644 .github/workflows/build-windows.yml diff --git a/.gitea/workflows/docker.yaml b/.gitea/workflows/docker.yaml deleted file mode 100644 index 0601d57..0000000 --- a/.gitea/workflows/docker.yaml +++ /dev/null @@ -1,60 +0,0 @@ -name: windows - -on: push - -jobs: - release-windows: - runs-on: act_runner - container: - image: catthehacker/ubuntu:act-latest - env: - RUNNER_TOOL_CACHE: /toolcache - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - - - name: Get Meta - id: meta - run: | - echo DATE_TAG=$(date +'%y%m') >> $GITHUB_OUTPUT - echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT - echo DOCKER_ORG=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $1}') >> $GITHUB_OUTPUT - echo DOCKER_TAG=$([ -n "$DOCKER_TAG" ] && echo ${DOCKER_TAG} || echo "latest") >> $GITHUB_OUTPUT - echo DOCKER_HUB=$([ -n "$DOCKER_HUB" ] && echo ${DOCKER_HUB} || echo "docker.io") >> $GITHUB_OUTPUT - echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}' | sed 's|^docker-||g') >> $GITHUB_OUTPUT - echo "$DOCKER_HUB/$DOCKER_ORG/$REPO_NAME:$DOCKER_TAG" - - - name: Set up Docker BuildX - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - password: ${{ secrets.DOCKER_TOKEN }} - username: ${{ secrets.DOCKER_USERNAME }} - registry: ${{ steps.meta.outputs.DOCKER_HUB }} - - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile - platforms: | - linux/amd64 - linux/arm64 - push: true - build-args: | - IMAGE_NAME=${{ steps.meta.outputs.REPO_NAME }} - BUILD_DATE=$(date -u +'%Y%m%d%H%M') - BUILD_VERSION=$(date -u +'%Y%m%d%H%M') - GIT_COMMIT=${{ github.sha }} - TIMEZONE=America/New_York - LANGUAGE=en_US.UTF-8 - LICENSE=WTFPL - TZ=America/New_York - tags: | - ${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DATE_TAG }} - ${{ steps.meta.outputs.DOCKER_HUB }}/${{ steps.meta.outputs.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.DOCKER_TAG }} diff --git a/.github/workflows/README.md b/.github/workflows/README.md deleted file mode 100644 index f75d539..0000000 --- a/.github/workflows/README.md +++ /dev/null @@ -1,130 +0,0 @@ -# GitHub Actions Workflow for Windows Container - -This workflow **fully automates** building Windows Server Core containers using GitHub Actions variables. - -## 🤖 Fully Automated Setup - -### 1. Set Variables (One-time setup) - -**Settings → Secrets and variables → Actions → Variables tab → New repository variable** - -Add this variable: -- `DOCKER_USERNAME` - Your Docker Hub username (e.g., `casjaysdevdocker`) - -**Settings → Secrets and variables → Actions → Secrets tab → New repository secret** - -Add this secret: -- `DOCKER_PASSWORD` - Your Docker Hub password or access token - -### 2. That's It! 🎉 - -The workflow automatically: -- ✅ Builds on every push to main/master/develop -- ✅ Builds monthly (1st of month at 2 AM UTC) -- ✅ Auto-detects repo name from GitHub -- ✅ Auto-generates image name: `/` -- ✅ Auto-creates tags: `latest` and `YYMM` format -- ✅ Auto-extracts metadata from git -- ✅ Auto-pushes to Docker Hub (if credentials set) -- ✅ Creates build summary in Actions tab - -## 🏷️ Automatic Image Tags - -**Format**: `/:` - -Examples for January 2026: -- `casjaysdevdocker/windows:latest` -- `casjaysdevdocker/windows:2601` - -## ⚙️ Automatic Metadata - -All OCI labels and annotations automatically include: -- Build date and time -- Git commit hash (short) -- Repository URL from GitHub -- Docker Hub URL -- Version (YYMM format) - -## 🔄 When Builds Run - -1. **On Push** - Any push to main/master/develop branches -2. **On Pull Request** - Tests build but doesn't push -3. **Monthly** - Automatic rebuild on 1st of each month at 2 AM UTC -4. **Manual** - Click "Run workflow" in Actions tab - -## 📊 Build Summary - -After each successful build, check the Actions tab for: -- Image name and tags -- Build date and commit -- Pull command -- Image size -- All metadata labels - -## 🚫 No Variables? No Problem! - -If `DOCKER_USERNAME` variable is not set: -- Falls back to repository owner name -- Example: `owner/windows:latest` - -If `DOCKER_PASSWORD` secret is not set: -- Build and test still run -- Push step is automatically skipped -- Perfect for testing or forked repos - -## 📝 Example Output - -``` -## 📦 Container Build Summary - -**Image:** `casjaysdevdocker/windows` -**Tags:** -- `latest` -- `2601` - -**Build Date:** 202601231800 -**Commit:** `a1b2c3d` - -### 🚀 Pull Command -```powershell -docker pull casjaysdevdocker/windows:latest -``` - -## 🔧 Advanced: Override Image Name - -Want to use a different Docker Hub username? Just set the variable: - -**Settings → Secrets and variables → Actions → Variables** -- `DOCKER_USERNAME` = `yourusername` - -Result: `yourusername/windows:latest` - -## 🛠️ Troubleshooting - -### Build succeeds but doesn't push -- Check that `DOCKER_PASSWORD` secret is set -- Verify `DOCKER_USERNAME` variable or repo owner is correct -- Ensure you're not building from a pull request - -### Wrong image name -- Set `DOCKER_USERNAME` variable to your Docker Hub username -- Or it defaults to GitHub repo owner - -### Need different tags? -- Edit `.github/workflows/build-windows.yml` -- Modify the `TAG_YYMM` format in the metadata step - -## 📅 Monthly Auto-Build - -The workflow includes a cron schedule: -```yaml -schedule: - - cron: '0 2 1 * *' # 1st of month at 2 AM UTC -``` - -This ensures: -- Fresh base image updates -- Latest security patches -- Regular image rebuilds - -To disable: Remove the `schedule:` section from the workflow file. diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml deleted file mode 100644 index 70069e1..0000000 --- a/.github/workflows/build-windows.yml +++ /dev/null @@ -1,176 +0,0 @@ -name: Build Windows Container - -on: - push: - branches: - - main - - master - - develop - pull_request: - branches: - - main - - master - workflow_dispatch: - schedule: - - cron: '0 2 1 * *' # Build monthly on 1st at 2 AM UTC - -env: - REGISTRY: docker.io - -jobs: - build: - runs-on: windows-2022 - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Extract metadata - id: meta - run: | - $BUILD_DATE = Get-Date -Format "yyyyMMddHHmm" - $TAG_YYMM = Get-Date -Format "yyMM" - $GIT_COMMIT = $env:GITHUB_SHA.Substring(0,7) - - # Extract repo name from GITHUB_REPOSITORY (owner/repo) - $REPO_NAME = $env:GITHUB_REPOSITORY.Split('/')[1] - - # Get Docker username from variables, fallback to repo owner - $DOCKER_USER = "${{ vars.DOCKER_USERNAME }}" - if ([string]::IsNullOrWhiteSpace($DOCKER_USER)) { - $DOCKER_USER = $env:GITHUB_REPOSITORY.Split('/')[0] - } - - $IMAGE_NAME = "$DOCKER_USER/$REPO_NAME" - - echo "BUILD_DATE=$BUILD_DATE" >> $env:GITHUB_ENV - echo "TAG_YYMM=$TAG_YYMM" >> $env:GITHUB_ENV - echo "GIT_COMMIT=$GIT_COMMIT" >> $env:GITHUB_ENV - echo "IMAGE_NAME=$IMAGE_NAME" >> $env:GITHUB_ENV - echo "REPO_NAME=$REPO_NAME" >> $env:GITHUB_ENV - - Write-Host "Image Name: $IMAGE_NAME" - Write-Host "Build Date: $BUILD_DATE" - Write-Host "Tag YYMM: $TAG_YYMM" - Write-Host "Git Commit: $GIT_COMMIT" - shell: powershell - - - name: Build Docker image with annotations - run: | - docker build ` - --build-arg BUILD_DATE=$env:BUILD_DATE ` - --build-arg GIT_COMMIT=$env:GIT_COMMIT ` - --label "maintainer=CasjaysDev " ` - --label "org.opencontainers.image.vendor=CasjaysDev" ` - --label "org.opencontainers.image.authors=CasjaysDev" ` - --label "org.opencontainers.image.description=Containerized version of $env:REPO_NAME" ` - --label "org.opencontainers.image.title=$env:REPO_NAME" ` - --label "org.opencontainers.image.base.name=$env:REPO_NAME" ` - --label "org.opencontainers.image.licenses=WTFPL" ` - --label "org.opencontainers.image.created=$env:BUILD_DATE" ` - --label "org.opencontainers.image.version=$env:TAG_YYMM" ` - --label "org.opencontainers.image.url=https://hub.docker.com/r/$env:IMAGE_NAME" ` - --label "org.opencontainers.image.source=$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY" ` - --label "org.opencontainers.image.vcs-type=Git" ` - --label "org.opencontainers.image.revision=$env:GIT_COMMIT" ` - --label "org.opencontainers.image.documentation=$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY" ` - --label "com.github.containers.toolbox=false" ` - --annotation "maintainer=CasjaysDev " ` - --annotation "org.opencontainers.image.vendor=CasjaysDev" ` - --annotation "org.opencontainers.image.authors=CasjaysDev" ` - --annotation "org.opencontainers.image.description=Containerized version of $env:REPO_NAME" ` - --annotation "org.opencontainers.image.title=$env:REPO_NAME" ` - --annotation "org.opencontainers.image.base.name=$env:REPO_NAME" ` - --annotation "org.opencontainers.image.licenses=WTFPL" ` - --annotation "org.opencontainers.image.created=$env:BUILD_DATE" ` - --annotation "org.opencontainers.image.version=$env:TAG_YYMM" ` - --annotation "org.opencontainers.image.url=https://hub.docker.com/r/$env:IMAGE_NAME" ` - --annotation "org.opencontainers.image.source=$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY" ` - --annotation "org.opencontainers.image.vcs-type=Git" ` - --annotation "org.opencontainers.image.revision=$env:GIT_COMMIT" ` - --annotation "org.opencontainers.image.documentation=$env:GITHUB_SERVER_URL/$env:GITHUB_REPOSITORY" ` - --annotation "com.github.containers.toolbox=false" ` - --tag $env:IMAGE_NAME`:latest ` - --tag $env:IMAGE_NAME`:$env:TAG_YYMM ` - . - shell: powershell - - - name: Test container - run: | - Write-Host "Starting container for testing..." - docker run -d --name test-container $env:IMAGE_NAME`:latest - Start-Sleep -Seconds 10 - - Write-Host "Checking container health..." - docker ps -a - - $containerStatus = docker inspect test-container --format='{{.State.Status}}' - Write-Host "Container status: $containerStatus" - - if ($containerStatus -ne "running") { - Write-Host "Container logs:" - docker logs test-container - exit 1 - } - - Write-Host "Testing healthcheck..." - docker exec test-container powershell -Command "C:/Windows/System32/entrypoint.ps1 healthcheck" - - Write-Host "Stopping test container..." - docker stop test-container - docker rm test-container - shell: powershell - - - name: Login to Docker Hub - if: github.event_name != 'pull_request' && secrets.DOCKER_PASSWORD != '' - uses: docker/login-action@v3 - with: - username: ${{ vars.DOCKER_USERNAME || github.repository_owner }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Push to Docker Hub - if: github.event_name != 'pull_request' && secrets.DOCKER_PASSWORD != '' - run: | - Write-Host "Pushing $env:IMAGE_NAME`:latest..." - docker push $env:IMAGE_NAME`:latest - - Write-Host "Pushing $env:IMAGE_NAME`:$env:TAG_YYMM..." - docker push $env:IMAGE_NAME`:$env:TAG_YYMM - - Write-Host "=== Images pushed successfully ===" - Write-Host "Latest: $env:IMAGE_NAME`:latest" - Write-Host "Monthly: $env:IMAGE_NAME`:$env:TAG_YYMM" - shell: powershell - - - name: Image details - if: always() - run: | - Write-Host "=== Built Images ===" - docker images $env:IMAGE_NAME - - Write-Host "`n=== Image Labels ===" - docker inspect $env:IMAGE_NAME`:latest --format='{{json .Config.Labels}}' | ConvertFrom-Json | Format-List - - Write-Host "`n=== Image Size ===" - $size = docker images $env:IMAGE_NAME`:latest --format='{{.Size}}' - Write-Host "Image size: $size" - shell: powershell - - - name: Create release summary - if: github.event_name != 'pull_request' - run: | - Write-Host "## 📦 Container Build Summary" >> $env:GITHUB_STEP_SUMMARY - Write-Host "" >> $env:GITHUB_STEP_SUMMARY - Write-Host "**Image:** ``$env:IMAGE_NAME``" >> $env:GITHUB_STEP_SUMMARY - Write-Host "**Tags:**" >> $env:GITHUB_STEP_SUMMARY - Write-Host "- ``latest``" >> $env:GITHUB_STEP_SUMMARY - Write-Host "- ``$env:TAG_YYMM``" >> $env:GITHUB_STEP_SUMMARY - Write-Host "" >> $env:GITHUB_STEP_SUMMARY - Write-Host "**Build Date:** $env:BUILD_DATE" >> $env:GITHUB_STEP_SUMMARY - Write-Host "**Commit:** ``$env:GIT_COMMIT``" >> $env:GITHUB_STEP_SUMMARY - Write-Host "" >> $env:GITHUB_STEP_SUMMARY - Write-Host "### 🚀 Pull Command" >> $env:GITHUB_STEP_SUMMARY - Write-Host '```powershell' >> $env:GITHUB_STEP_SUMMARY - Write-Host "docker pull $env:IMAGE_NAME`:latest" >> $env:GITHUB_STEP_SUMMARY - Write-Host '```' >> $env:GITHUB_STEP_SUMMARY - shell: powershell