name: Update servers list on: workflow_dispatch: inputs: provider: description: "VPN Provider to update" required: true default: "all" type: choice options: - all - airvpn - cyberghost - expressvpn - fastestvpn - giganews - hidemyass - ipvanish - ivpn - mullvad - nordvpn - perfect privacy - privado - private internet access - privatevpn - protonvpn - purevpn - slickvpn - surfshark - torguard - vpnsecure - vpn unlimited - vyprvpn - windscribe schedule: - cron: "11 3 1 */2 *" # Run at 03:11 on the 1st of every 2nd month jobs: update-servers-list: if: github.repository == 'qdm12/gluetun' runs-on: ubuntu-latest permissions: actions: read contents: write pull-requests: write steps: - uses: actions/checkout@v6 - uses: actions/setup-go@v6 with: go-version-file: go.mod - name: Update servers list run: | SELECTED_PROVIDER="${{ github.event.inputs.provider || 'all' }}" if [ "$SELECTED_PROVIDER" = "all" ]; then FLAGS="-all" else FLAGS="-providers $SELECTED_PROVIDER" fi go run ./cmd/gluetun/main.go update $FLAGS \ -maintainer \ -proton-email "${{ secrets.PROTON_EMAIL }}" \ -proton-password "${{ secrets.PROTON_PASSWORD }}" - name: Check for changes run: | if git diff --exit-code internal/storage/servers.json >/dev/null; then echo "Error: internal/storage/servers.json was not modified." exit 1 fi - name: Check no other file changes run: | if ! git diff --exit-code --quiet ':!internal/storage/servers.json'; then echo "Error: Unexpected changes detected in files other than servers.json" git status --short exit 1 fi - name: Create Pull Request id: createpr uses: peter-evans/create-pull-request@v7 with: branch-suffix: timestamp branch: bot/update-servers-list base: master delete-branch: true title: "feat(providers/${{ github.event.inputs.provider || 'all' }}): servers data update" body: | This PR was automatically generated by the [Update servers list](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) workflow run. # - name: Merge Pull Request # env: # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # run: | # gh pr merge ${{ steps.createpr.outputs.pull-request-number }} --auto -m -d