name: Update Clash-Core and Go Modules on: repository_dispatch: types: - core-updated workflow_dispatch: jobs: update-dependencies: runs-on: ubuntu-latest steps: - name: Checkout Repository uses: actions/checkout@v6 - name: Checkout and Update submodules run: git submodule update --init --recursive --remote --force - name: Setup Java uses: actions/setup-java@v5 with: distribution: "temurin" java-version: 21 - name: Setup Go uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c with: go-download-base-url: 'https://github.com/MetaCubeX/go/releases/download/build' go-version: '1.26' - name: Apply Patches run: | cd $(go env GOROOT) for p in $GITHUB_WORKSPACE/.github/patch/*.patch; do patch --verbose -p 1 < "$p"; done - uses: actions/cache@v5 with: path: | ~/.cache/go-build ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Install update-go-mod-replace run: | go install github.com/metacubex/update-go-mod-replace@latest - name: Update Foss Gomod run: | cd ${{ github.workspace }}/core/src/foss/golang/ update-go-mod-replace ${{ github.workspace }}/core/src/foss/golang/clash/go.mod $(pwd)/go.mod go mod tidy - name: Update Main Gomod run: | cd ${{ github.workspace }}/core/src/main/golang/ update-go-mod-replace ${{ github.workspace }}/core/src/foss/golang/clash/go.mod $(pwd)/go.mod go mod tidy - uses: tibdex/github-app-token@v2 id: generate-token with: app_id: ${{ secrets.MAINTAINER_APPID }} private_key: ${{ secrets.MAINTAINER_APP_PRIVATE_KEY }} - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v8 with: token: ${{ steps.generate-token.outputs.token }} commit-message: Update Dependencies branch: update-dependencies delete-branch: true title: 'Update Dependencies' draft: false body: | - Update Clash-Meta Core - Update Go Module Dependecies labels: | Update - name: PR result if: ${{ steps.cpr.outputs.pull-request-number }} run: | echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}"