Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

ci.yaml 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. ---
  2. name: CI
  3. permissions:
  4. actions: read
  5. checks: read
  6. contents: read
  7. deployments: read
  8. issues: read
  9. discussions: read
  10. pull-requests: read
  11. repository-projects: read
  12. security-events: read
  13. statuses: read
  14. on:
  15. push:
  16. tags:
  17. - v*
  18. branches:
  19. - master
  20. - stable
  21. - v1
  22. release:
  23. types:
  24. - published
  25. - released
  26. pull_request:
  27. types:
  28. - opened
  29. - edited
  30. - reopened
  31. - synchronize
  32. - ready_for_review
  33. jobs:
  34. test:
  35. name: Test
  36. runs-on: ubuntu-latest
  37. timeout-minutes: 5
  38. strategy:
  39. matrix:
  40. go_version:
  41. - ~1.16
  42. - ^1.17
  43. steps:
  44. - name: Checkout
  45. uses: actions/checkout@v2
  46. with:
  47. submodules: recursive
  48. - name: Setup Go
  49. uses: actions/setup-go@v2
  50. with:
  51. go-version: ${{ matrix.go_version }}
  52. - name: Cache dependencies
  53. uses: actions/cache@v2
  54. with:
  55. path: ~/go/pkg/mod
  56. key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
  57. restore-keys: ${{ runner.os }}-go-
  58. - name: Run tests
  59. run: go test -coverprofile=./coverage.txt -covermode=atomic -v ./...
  60. - name: Collect coverage
  61. uses: codecov/codecov-action@v1
  62. with:
  63. file: ./coverage.txt
  64. lint:
  65. name: Lint
  66. runs-on: ubuntu-latest
  67. timeout-minutes: 5
  68. steps:
  69. - name: Checkout
  70. uses: actions/checkout@v2
  71. with:
  72. submodules: recursive
  73. - name: Run linter
  74. uses: golangci/golangci-lint-action@v2
  75. with:
  76. version: v1.42.0
  77. docker:
  78. name: Docker
  79. runs-on: ubuntu-latest
  80. timeout-minutes: 20
  81. steps:
  82. - name: Checkout
  83. uses: actions/checkout@v2
  84. with:
  85. submodules: recursive
  86. - name: Get Docker meta
  87. id: docker_meta
  88. uses: crazy-max/ghaction-docker-meta@v1
  89. with:
  90. images: nineseconds/mtg,ghcr.io/9seconds/mtg
  91. tag-semver: "{{version}},{{major}},{{major}}.{{minor}}"
  92. - name: Setup QEMU
  93. uses: docker/setup-qemu-action@v1
  94. - name: Setup BuildX
  95. uses: docker/setup-buildx-action@v1
  96. - name: Setup cache
  97. uses: actions/cache@v2
  98. with:
  99. path: /tmp/buildx-cache
  100. key: ${{ runner.os }}-buildx-${{ github.sha }}
  101. restore-keys: |
  102. ${{ runner.os }}-buildx-
  103. - name: Login to DockerHub
  104. if: github.event_name != 'pull_request'
  105. uses: docker/login-action@v1
  106. with:
  107. username: ${{ secrets.DOCKERHUB_USERNAME }}
  108. password: ${{ secrets.DOCKERHUB_PASSWORD }}
  109. - name: Login to GHCR.io
  110. if: github.event_name != 'pull_request'
  111. uses: docker/login-action@v1
  112. with:
  113. registry: ghcr.io
  114. username: ${{ github.repository_owner }}
  115. password: ${{ secrets.GH_PAT }}
  116. - name: Build and push
  117. uses: docker/build-push-action@v2
  118. with:
  119. pull: true
  120. context: .
  121. platforms: linux/amd64,linux/arm64,linux/386,linux/arm/v7,linux/arm/v6
  122. push: ${{ github.event_name != 'pull_request' }}
  123. tags: ${{ steps.docker_meta.outputs.tags }}
  124. labels: ${{ steps.docker_meta.outputs.labels }}
  125. cache-from: type=local,src=/tmp/buildx-cache
  126. cache-to: type=local,dest=/tmp/buildx-cache