From 933667bdf159065e6e9acaa0b82bb44e6f4b7bfb Mon Sep 17 00:00:00 2001 From: Crown0815 Date: Thu, 11 Sep 2025 11:25:52 +0000 Subject: [PATCH] Remove windows build/test pipeline for GitHub (#985) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Windows builds have move to an [independent repository](https://github.com/Crown0815/Forgejo-runner-windows-builder). Same changes as in #983 - other - [PR](https://code.forgejo.org/forgejo/runner/pulls/985): Remove windows build/test pipeline for GitHub Co-authored-by: Felix Kröner Reviewed-on: https://code.forgejo.org/forgejo/runner/pulls/985 Reviewed-by: earl-warren Co-authored-by: Crown0815 Co-committed-by: Crown0815 --- .github/workflows/build-release.yml | 151 ---------------------------- 1 file changed, 151 deletions(-) delete mode 100644 .github/workflows/build-release.yml diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml deleted file mode 100644 index d179d7bb..00000000 --- a/.github/workflows/build-release.yml +++ /dev/null @@ -1,151 +0,0 @@ -# This workflow: -# - builds and uploads a binary artifact for each Windows architecture -# - tests the runner on Windows with a Forgejo server container running on Windows Subsystem for Linux (WSL) -# - releases the binary artifact (if triggered on a pushed tag) -# -# This build is currently supported on https://github.com/Crown0815/forgejo-runner-windows - -name: Build Release - -on: - push: - tags: ['v*'] - branches: [ main ] - -jobs: - build: - name: Build ${{matrix.architecture}} - runs-on: ubuntu-latest - strategy: - matrix: - architecture: ['386', amd64, arm, arm64] - steps: - - uses: actions/checkout@v4 - - name: Build for ${{matrix.architecture}} - run: | - env GOOS=windows GOARCH=${{matrix.architecture}} \ - go build \ - -ldflags "-s -w -X code.forgejo.org/forgejo/runner/internal/pkg/ver.version=${{ github.ref_name }}" \ - -o forgejo-runner-windows-${{matrix.architecture}}.exe - - - uses: actions/upload-artifact@v4 - with: - name: forgejo-runner-windows-${{matrix.architecture}} - path: forgejo-runner-windows-${{matrix.architecture}}.exe - - - test: - name: Run Tests on Windows with Linux Forgejo Server - runs-on: windows-latest - env: - FORGEJO_ROOT_URL: 'http://localhost:3000/' - FORGEJO_ADMIN_USER: 'admin_user' - FORGEJO_ADMIN_PASSWORD: 'admin_password' - FORGEJO_RUNNER_SECRET: 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' - MAX_WAIT_ITERATIONS: 30 - - steps: - - name: Windows - Checkout code - uses: actions/checkout@v4 - - - name: Windows - Setup Windows Subsystem for Linux (WSL) - uses: Vampire/setup-wsl@v5 - with: - distribution: Alpine - wsl-shell-user: root - additional-packages: bash - - - name: WSL - Install Docker - shell: wsl-bash {0} - run: | - apk --update add --no-cache docker curl - - rc-update add docker default - openrc default - - # Wait for Docker to be ready - i=0 - until docker info > /dev/null 2>&1 || (( i == ${{ env.MAX_WAIT_ITERATIONS }} )); do - echo "Waiting for Docker to be ready... ($(( ++i ))/${{ env.MAX_WAIT_ITERATIONS }})" - sleep 1 - done - [ $i -lt ${{ env.MAX_WAIT_ITERATIONS }} ] && echo "Docker is ready!" || { echo "Timed out waiting for Docker" ; exit 1; } - - - name: WSL - Start Forgejo Server - shell: wsl-bash {0} - run: | - docker run -d --name forgejo \ - -p 3000:3000 \ - -e USER_UID=1000 \ - -e USER_GID=1000 \ - -e FORGEJO__security__INSTALL_LOCK=true \ - -e FORGEJO__server__DOMAIN=localhost \ - -e FORGEJO__server__ROOT_URL=${{ env.FORGEJO_ROOT_URL }} \ - codeberg.org/forgejo/forgejo:11.0-rootless - - - name: Windows - Set up Go - uses: actions/setup-go@v5 - with: - go-version-file: go.mod - - - name: Windows - Install dependencies - run: go mod download - - - name: WSL - Register Runner on Forgejo Server - # Starting the Forgejo server takes some time. - # That time used to install go. - shell: wsl-bash {0} - run: | - i=0 - until curl -s ${{ env.FORGEJO_ROOT_URL }}/api/v1/version > /dev/null || (( i == ${{ env.MAX_WAIT_ITERATIONS }} )); do - echo "Waiting for Forgejo to be ready... ($(( ++i ))/${{ env.MAX_WAIT_ITERATIONS }})" - sleep 1 - done - [ $i -lt ${{ env.MAX_WAIT_ITERATIONS }} ] && echo "Forgejo is ready!" || { echo "Timed out waiting for Forgejo" ; exit 1; } - - # Create admin user and generate runner token - docker exec forgejo forgejo admin user create --admin --username ${{ env.FORGEJO_ADMIN_USER }} --password ${{ env.FORGEJO_ADMIN_PASSWORD }} --email root@example.com - docker exec forgejo forgejo forgejo-cli actions register --labels docker --name therunner --secret ${{ env.FORGEJO_RUNNER_SECRET }} - - - name: Windows - Connect to Forgejo server - run: | - $configFileContent = @" - log: - level: debug - runner: - labels: - - windows:host - - docker:docker://node:20 - "@ - Set-Content -Path temporaryConfig.yml -Value $configFileContent - - # Register the runner - go run main.go create-runner-file --config temporaryConfig.yml --instance ${{ env.FORGEJO_ROOT_URL }} --secret ${{ env.FORGEJO_RUNNER_SECRET }} --name "windows-test-runner" - - - name: Windows - Run tests - run: go test -v ./... - env: - FORGEJO_URL: ${{ env.FORGEJO_ROOT_URL }} - FORGEJO_RUNNER_SECRET: ${{ env.FORGEJO_RUNNER_SECRET }} - FORGEJO_RUNNER_HEX_SECRET: ${{ env.FORGEJO_RUNNER_SECRET }} - - - release: - runs-on: ubuntu-latest - needs: [build, test] - if: github.event_name == 'push' && github.ref_type == 'tag' - steps: - - uses: actions/download-artifact@v4 - with: - path: . - - - name: Create Release - uses: softprops/action-gh-release@v2 - with: - tag_name: ${{ github.ref_name }} - files: forgejo-runner-windows-*/forgejo-runner-windows-*.exe - draft: false - prerelease: ${{ contains(github.ref, 'beta') || contains(github.ref, 'alpha') }} - token: ${{ secrets.RELEASE_TOKEN }} - fail_on_unmatched_files: true - body: See [original release notes](https://code.forgejo.org/forgejo/runner/releases/tag/${{ github.ref_name }}).