From e598314905c23aa663f9267be4fa8f9a1632256b Mon Sep 17 00:00:00 2001 From: PuerNya Date: Tue, 13 Aug 2024 09:44:39 +0800 Subject: [PATCH] multi builds --- .github/renovate.json | 28 ----- .github/update_dependencies.sh | 5 - .github/workflows/core.yml | 153 +++++++++++++++++++++++ .github/workflows/debug.yml | 220 --------------------------------- .github/workflows/docker.yml | 62 ---------- .github/workflows/lint.yml | 37 ------ .github/workflows/linux.yml | 39 ------ .github/workflows/sfa.yml | 138 +++++++++++++++++++++ .github/workflows/stale.yml | 15 --- 9 files changed, 291 insertions(+), 406 deletions(-) delete mode 100644 .github/renovate.json delete mode 100755 .github/update_dependencies.sh create mode 100644 .github/workflows/core.yml delete mode 100644 .github/workflows/debug.yml delete mode 100644 .github/workflows/docker.yml delete mode 100644 .github/workflows/lint.yml delete mode 100644 .github/workflows/linux.yml create mode 100644 .github/workflows/sfa.yml delete mode 100644 .github/workflows/stale.yml diff --git a/.github/renovate.json b/.github/renovate.json deleted file mode 100644 index 78d9c96144..0000000000 --- a/.github/renovate.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "commitMessagePrefix": "[dependencies]", - "extends": [ - "config:base", - ":disableRateLimiting" - ], - "baseBranches": [ - "dev-next" - ], - "golang": { - "enabled": false - }, - "packageRules": [ - { - "matchManagers": [ - "github-actions" - ], - "groupName": "github-actions" - }, - { - "matchManagers": [ - "dockerfile" - ], - "groupName": "Dockerfile" - } - ] -} \ No newline at end of file diff --git a/.github/update_dependencies.sh b/.github/update_dependencies.sh deleted file mode 100755 index 4702ddfe01..0000000000 --- a/.github/update_dependencies.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -PROJECTS=$(dirname "$0")/../.. -go get -x github.com/sagernet/$1@$(git -C $PROJECTS/$1 rev-parse HEAD) -go mod tidy diff --git a/.github/workflows/core.yml b/.github/workflows/core.yml new file mode 100644 index 0000000000..8ed25b1c28 --- /dev/null +++ b/.github/workflows/core.yml @@ -0,0 +1,153 @@ +name: Build Cores + +on: + push: + +jobs: + go: + runs-on: ubuntu-latest + outputs: + version: ${{steps.go.outputs.version}} + steps: + - name: get latest go version + id: go + run: | + echo version=$(curl -s https://raw.githubusercontent.com/actions/go-versions/update-versions-manifest-file/versions-manifest.json | grep -oE '"version": "[0-9]{1}.[0-9]{1,}(.[0-9]{1,})?"' | head -1 | cut -d':' -f2 | sed 's/ //g; s/"//g') >> $GITHUB_OUTPUT + + sing-box: + runs-on: ubuntu-latest + needs: go + outputs: + version: ${{steps.sing-box.outputs.version}} + steps: + - uses: actions/checkout@v4.1.1 + with: + fetch-depth: 0 + + - name: setup go + uses: actions/setup-go@v5.0.0 + with: + go-version: ${{needs.go.outputs.version}} + + - name: get sing-box version + id: sing-box + run: | + git remote add sekai https://github.com/SagerNet/sing-box.git + git fetch --tags sekai + version=$(CGO_ENABLED=0 go run ./cmd/internal/read_tag) + echo version=$version >> $GITHUB_OUTPUT + + build: + runs-on: ubuntu-latest + needs: + - go + - sing-box + strategy: + matrix: + jobs: + # android + - { goos: android, goarch: 386, goarm: 7, ndk: i686-linux-android34, output: 386 } + - { goos: android, goarch: arm, goarm: 7, ndk: armv7a-linux-androideabi34, output: armeabi-v7a } + - { goos: android, goarch: arm64, goarm: 7, ndk: aarch64-linux-android34, output: arm64-v8a } + - { goos: android, goarch: amd64, goarm: 7, ndk: x86_64-linux-android34, output: amd64 } + + # darwin + - { goos: darwin, goarch: arm64, output: arm64 } + - { goos: darwin, goarch: amd64, goamd64: v1, output: amd64 } + - { goos: darwin, goarch: amd64, goamd64: v3, output: amd64v3 } + # linux + - { goos: linux, goarch: 386, output: 386 } + + - { goos: linux, goarch: s390x, output: s390x } + - { goos: linux, goarch: riscv64, output: riscv64 } + + - { goos: linux, goarch: arm64, output: arm64 } + + - { goos: linux, goarch: loong64, abi: 1, output: loong64-abi1 } + - { goos: linux, goarch: loong64, abi: 2, output: loong64-abi2 } + + - { goos: linux, goarch: arm, goarm: 5, output: armv5 } + - { goos: linux, goarch: arm, goarm: 6, output: armv6 } + - { goos: linux, goarch: arm, goarm: 7, output: armv7 } + + - { goos: linux, goarch: amd64, goamd64: v1, output: amd64 } + - { goos: linux, goarch: amd64, goamd64: v3, output: amd64v3 } + + - { goos: linux, goarch: mips, output: mips } + - { goos: linux, goarch: mips, gomips: softfloat, output: mips-softfloat } + - { goos: linux, goarch: mips, gomips: hardfloat, output: mips-hardfloat } + - { goos: linux, goarch: mipsle, output: mipsle } + + - { goos: linux, goarch: mips64, output: mips64 } + - { goos: linux, goarch: mips64, gomips: softfloat, output: mips64-softfloat } + - { goos: linux, goarch: mips64, gomips: hardfloat, output: mips64-hardfloat } + - { goos: linux, goarch: mips64le, output: mips64le } + # windows + - { goos: windows, goarch: 386, output: 386 } + + - { goos: windows, goarch: arm64, output: arm64 } + + - { goos: windows, goarch: arm, goarm: 7, output: arm32v7 } + + - { goos: windows, goarch: amd64, goamd64: v1, output: amd64 } + - { goos: windows, goarch: amd64, goamd64: v3, output: amd64v3 } + # freebsd + - { goos: freebsd, goarch: arm64, output: arm64 } + + - { goos: freebsd, goarch: amd64, goamd64: v1, output: amd64 } + - { goos: freebsd, goarch: amd64, goamd64: v3, output: amd64v3 } + env: + ABI: ${{ matrix.jobs.abi }} + GOOS: ${{ matrix.jobs.goos }} + GOARM: ${{ matrix.jobs.goarm }} + GOARCH: ${{ matrix.jobs.goarch }} + GOAMD64: ${{ matrix.jobs.goamd64 }} + GOMIPS: ${{ matrix.jobs.gomips }} + CGO_ENABLED: ${{ matrix.jobs.goos == 'android' && 1 || 0 }} + VERSION: ${{ needs.sing-box.outputs.version }} + SUFFIX: ${{ matrix.jobs.goos == 'windows' && '.exe' || '' }} + steps: + - uses: actions/checkout@v4.1.1 + with: + fetch-depth: 0 + + - name: setup go + uses: actions/setup-go@v5.0.0 + with: + go-version: ${{ needs.go.outputs.version }} + + - name: Setup NDK + if: ${{ matrix.jobs.goos == 'android' }} + uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26c + + - name: Setup CC ENV + if: ${{ matrix.jobs.goos == 'android' }} + run: echo "CC=${{ steps.setup-ndk.outputs.ndk-path }}/toolchains/llvm/prebuilt/linux-x86_64/bin/${{ matrix.jobs.ndk }}-clang" >> $GITHUB_ENV + + - name: build both-side core + env: + TAGS: with_quic,with_dhcp,with_wireguard,with_shadowsocksr,with_ech,with_utls,with_acme,with_reality_server,with_clash_api,with_gvisor + run: go build -o sing-box-both-side${{ env.SUFFIX }} -v -trimpath -ldflags "-X 'github.com/sagernet/sing-box/constant.Version=${VERSION}' -s -w -buildid=" -tags "${TAGS}" ./cmd/sing-box + + - name: build client core + env: + TAGS: with_quic,with_dhcp,with_wireguard,with_shadowsocksr,with_ech,with_utls,with_clash_api,with_gvisor + run: go build -o sing-box-client${{ env.SUFFIX }} -v -trimpath -ldflags "-X 'github.com/sagernet/sing-box/constant.Version=${VERSION}' -s -w -buildid=" -tags "${TAGS}" ./cmd/sing-box + + - name: build server core + env: + TAGS: with_quic,with_dhcp,with_wireguard,with_ech,with_utls,with_acme,with_reality_server,with_gvisor + run: go build -o sing-box-server${{ env.SUFFIX }} -v -trimpath -ldflags "-X 'github.com/sagernet/sing-box/constant.Version=${VERSION}' -s -w -buildid=" -tags "${TAGS}" ./cmd/sing-box + + - name: upload core + uses: actions/upload-artifact@v4.1.0 + with: + name: sing-box-${{ env.VERSION }}-${{ env.GOOS }}-${{ matrix.jobs.output }} + path: | + sing-box-client${{ env.SUFFIX }} + sing-box-server${{ env.SUFFIX }} + sing-box-both-side${{ env.SUFFIX }} + compression-level: 9 diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml deleted file mode 100644 index 54785a0928..0000000000 --- a/.github/workflows/debug.yml +++ /dev/null @@ -1,220 +0,0 @@ -name: Debug build - -on: - push: - branches: - - stable-next - - main-next - - dev-next - paths-ignore: - - '**.md' - - '.github/**' - - '!.github/workflows/debug.yml' - pull_request: - branches: - - stable-next - - main-next - - dev-next - -jobs: - build: - name: Debug build - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ^1.22 - continue-on-error: true - - name: Run Test - run: | - go test -v ./... - build_go118: - name: Debug build (Go 1.18) - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ~1.18 - - name: Cache go module - uses: actions/cache@v4 - with: - path: | - ~/go/pkg/mod - key: go118-${{ hashFiles('**/go.sum') }} - - name: Run Test - run: make ci_build_go118 - build_go120: - name: Debug build (Go 1.20) - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ~1.20 - - name: Cache go module - uses: actions/cache@v4 - with: - path: | - ~/go/pkg/mod - key: go120-${{ hashFiles('**/go.sum') }} - - name: Run Test - run: make ci_build_go120 - build_go121: - name: Debug build (Go 1.21) - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ~1.21 - - name: Cache go module - uses: actions/cache@v4 - with: - path: | - ~/go/pkg/mod - key: go121-${{ hashFiles('**/go.sum') }} - - name: Run Test - run: make ci_build - cross: - strategy: - matrix: - include: - # windows - - name: windows-amd64 - goos: windows - goarch: amd64 - goamd64: v1 - - name: windows-amd64-v3 - goos: windows - goarch: amd64 - goamd64: v3 - - name: windows-386 - goos: windows - goarch: 386 - - name: windows-arm64 - goos: windows - goarch: arm64 - - name: windows-arm32v7 - goos: windows - goarch: arm - goarm: 7 - - # linux - - name: linux-amd64 - goos: linux - goarch: amd64 - goamd64: v1 - - name: linux-amd64-v3 - goos: linux - goarch: amd64 - goamd64: v3 - - name: linux-386 - goos: linux - goarch: 386 - - name: linux-arm64 - goos: linux - goarch: arm64 - - name: linux-armv5 - goos: linux - goarch: arm - goarm: 5 - - name: linux-armv6 - goos: linux - goarch: arm - goarm: 6 - - name: linux-armv7 - goos: linux - goarch: arm - goarm: 7 - - name: linux-mips-softfloat - goos: linux - goarch: mips - gomips: softfloat - - name: linux-mips-hardfloat - goos: linux - goarch: mips - gomips: hardfloat - - name: linux-mipsel-softfloat - goos: linux - goarch: mipsle - gomips: softfloat - - name: linux-mipsel-hardfloat - goos: linux - goarch: mipsle - gomips: hardfloat - - name: linux-mips64 - goos: linux - goarch: mips64 - - name: linux-mips64el - goos: linux - goarch: mips64le - - name: linux-s390x - goos: linux - goarch: s390x - # darwin - - name: darwin-amd64 - goos: darwin - goarch: amd64 - goamd64: v1 - - name: darwin-amd64-v3 - goos: darwin - goarch: amd64 - goamd64: v3 - - name: darwin-arm64 - goos: darwin - goarch: arm64 - # freebsd - - name: freebsd-amd64 - goos: freebsd - goarch: amd64 - goamd64: v1 - - name: freebsd-amd64-v3 - goos: freebsd - goarch: amd64 - goamd64: v3 - - name: freebsd-386 - goos: freebsd - goarch: 386 - - name: freebsd-arm64 - goos: freebsd - goarch: arm64 - fail-fast: true - runs-on: ubuntu-latest - env: - GOOS: ${{ matrix.goos }} - GOARCH: ${{ matrix.goarch }} - GOAMD64: ${{ matrix.goamd64 }} - GOARM: ${{ matrix.goarm }} - GOMIPS: ${{ matrix.gomips }} - CGO_ENABLED: 0 - TAGS: with_clash_api,with_quic - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ^1.21 - - name: Build - id: build - run: make \ No newline at end of file diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml deleted file mode 100644 index 749b780d3f..0000000000 --- a/.github/workflows/docker.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Build Docker Images - -on: - release: - types: - - released - workflow_dispatch: - inputs: - tag: - description: "The tag version you want to build" -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Get commit to build - id: ref - run: |- - if [[ -z "${{ github.event.inputs.tag }}" ]]; then - ref="${{ github.ref_name }}" - else - ref="${{ github.event.inputs.tag }}" - fi - echo "ref=$ref" - echo "ref=$ref" >> $GITHUB_OUTPUT - if [[ $ref == *"-"* ]]; then - latest=latest-beta - else - latest=latest - fi - echo "latest=$latest" - echo "latest=$latest" >> $GITHUB_OUTPUT - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - ref: ${{ steps.ref.outputs.ref }} - - name: Setup Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Setup QEMU for Docker Buildx - uses: docker/setup-qemu-action@v3 - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Docker metadata - id: metadata - uses: docker/metadata-action@v5 - with: - images: ghcr.io/sagernet/sing-box - - name: Build and release Docker images - uses: docker/build-push-action@v5 - with: - platforms: linux/386,linux/amd64,linux/arm64,linux/s390x - context: . - target: dist - build-args: | - BUILDKIT_CONTEXT_KEEP_GIT_DIR=1 - tags: | - ghcr.io/sagernet/sing-box:${{ steps.ref.outputs.latest }} - ghcr.io/sagernet/sing-box:${{ steps.ref.outputs.ref }} - push: true diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index d0c8cf0412..0000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Lint - -on: - push: - branches: - - stable-next - - main-next - - dev-next - paths-ignore: - - '**.md' - - '.github/**' - - '!.github/workflows/lint.yml' - pull_request: - branches: - - stable-next - - main-next - - dev-next - -jobs: - build: - name: Build - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ^1.22 - - name: golangci-lint - uses: golangci/golangci-lint-action@v6 - with: - version: latest - args: --timeout=30m - install-mode: binary \ No newline at end of file diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml deleted file mode 100644 index dce78bc5b0..0000000000 --- a/.github/workflows/linux.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Release to Linux repository - -on: - release: - types: - - published - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 - with: - fetch-depth: 0 - - name: Setup Go - uses: actions/setup-go@v5 - with: - go-version: ^1.22 - - name: Extract signing key - run: |- - mkdir -p $HOME/.gnupg - cat > $HOME/.gnupg/sagernet.key <> "$GITHUB_ENV" - EOF - echo "HOME=$HOME" >> "$GITHUB_ENV" - - name: Publish release - uses: goreleaser/goreleaser-action@v6 - with: - distribution: goreleaser-pro - version: latest - args: release -f .goreleaser.fury.yaml --clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} - FURY_TOKEN: ${{ secrets.FURY_TOKEN }} - NFPM_KEY_PATH: ${{ env.HOME }}/.gnupg/sagernet.key - NFPM_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} diff --git a/.github/workflows/sfa.yml b/.github/workflows/sfa.yml new file mode 100644 index 0000000000..dcbde97996 --- /dev/null +++ b/.github/workflows/sfa.yml @@ -0,0 +1,138 @@ +name: Build SFA + +on: + push: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4.1.1 + with: + fetch-depth: 0 + + - name: get latest go version + id: go + run: | + echo version=$(curl -s https://raw.githubusercontent.com/actions/go-versions/update-versions-manifest-file/versions-manifest.json | grep -oE '"version": "[0-9]{1}.[0-9]{1,}(.[0-9]{1,})?"' | head -1 | cut -d':' -f2 | sed 's/ //g; s/"//g') >> $GITHUB_OUTPUT + + - name: setup go + uses: actions/setup-go@v5.0.0 + with: + go-version: ${{steps.go.outputs.version}} + + - name: checkout app repository + uses: actions/checkout@v4.1.1 + with: + path: sfa + repository: SagerNet/sing-box-for-android + submodules: recursive + + - name: setup java + uses: actions/setup-java@v4.0.0 + with: + distribution: 'oracle' + java-version: 21 + + - name: setup ndk + uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26c + + - name: get latest build tools version + id: sdk + run: echo version=$(ls $ANDROID_HOME/build-tools | tail -n 1) >> $GITHUB_OUTPUT + + - name: get sing-box version + id: sing-box + run: | + git remote add sekai https://github.com/SagerNet/sing-box + git fetch --tags sekai + version=$(CGO_ENABLED=0 go run ./cmd/internal/read_tag) + echo version=$version >> $GITHUB_OUTPUT + + - name: build libbox + env: + CC: ${{steps.setup-ndk.outputs.ndk-path}}/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang + TAGS: with_quic,with_dhcp,with_wireguard,with_shadowsocksr,with_ech,with_utls,with_clash_api,with_gvisor + VERSION: ${{steps.sing-box.outputs.version}} + CGO_ENABLED: '0' + run: | + make lib_install + gomobile bind -v -a -trimpath -buildvcs=false -androidapi 21 -javapkg=io.nekohasekai -libname=box -tags ${TAGS} -ldflags "-X github.com/sagernet/sing-box/constant.Version=${VERSION} -s -w -buildid=" ./experimental/libbox + + - name: setup build env && build app + env: + VERSION: ${{steps.sing-box.outputs.version}} + KEYSTORE: ${{secrets.SIGN_KEY}} + ALIAS_NAME: ${{secrets.ALIAS}} + KEYSTORE_PASS: ${{secrets.SIGN_KEY}} + run: | + mkdir -p sfa/app/libs/ + cp ./libbox.aar sfa/app/libs/ + cd sfa + echo "" >> gradle.properties + echo "org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 -XX:+UseParallelGC" >> gradle.properties + echo "org.gradle.caching=true" >> gradle.properties + echo "org.gradle.parallel=true" >> gradle.properties + echo "VERSION_NAME=${VERSION}" > local.properties + echo "VERSION_CODE=$(date +%Y%m%d%H)" >> local.properties + sed -i '/signingConfigs\.release/d' app/build.gradle + chmod +x ./gradlew + ./gradlew assembleRelease --debug + + - name: sign app + uses: PuerNya/sign-android-release@v2.0.4 + env: + BUILD_TOOLS_VERSION: ${{steps.sdk.outputs.version}} + with: + alias: ${{secrets.ALIAS}} + releaseDirectory: sfa/app/build/outputs/apk/other/release + signingKeyBase64: ${{secrets.SIGN_KEY}} + keyStorePassword: ${{secrets.KEY_STORE_PASSWORD}} + + - name: upload arm64-v8a apk + uses: actions/upload-artifact@v4.1.0 + env: + version: ${{steps.sing-box.outputs.version}} + with: + name: sfa-${{env.version}}-arm64-v8a + path: sfa/app/build/outputs/apk/other/release/*-arm64-v8a-signed.apk + compression-level: 9 + + - name: upload armeabi-v7a apk + uses: actions/upload-artifact@v4.1.0 + env: + version: ${{steps.sing-box.outputs.version}} + with: + name: sfa-${{env.version}}-armeabi-v7a + path: sfa/app/build/outputs/apk/other/release/*-armeabi-v7a-signed.apk + compression-level: 9 + + - name: upload x86_64 apk + uses: actions/upload-artifact@v4.1.0 + env: + version: ${{steps.sing-box.outputs.version}} + with: + name: sfa-${{env.version}}-x86_64 + path: sfa/app/build/outputs/apk/other/release/*-x86_64-signed.apk + compression-level: 9 + + - name: upload x86 apk + uses: actions/upload-artifact@v4.1.0 + env: + version: ${{steps.sing-box.outputs.version}} + with: + name: sfa-${{env.version}}-x86 + path: sfa/app/build/outputs/apk/other/release/*-x86-signed.apk + compression-level: 9 + + - name: upload universal apk + uses: actions/upload-artifact@v4.1.0 + env: + version: ${{steps.sing-box.outputs.version}} + with: + name: sfa-${{env.version}}-universal + path: sfa/app/build/outputs/apk/other/release/*-universal-signed.apk + compression-level: 9 \ No newline at end of file diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index b6307da29f..0000000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Mark stale issues and pull requests - -on: - schedule: - - cron: "30 1 * * *" - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - stale-issue-message: 'This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 5 days' - days-before-stale: 60 - days-before-close: 5 \ No newline at end of file