diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index 73d7b7e..0000000 --- a/.appveyor.yml +++ /dev/null @@ -1,61 +0,0 @@ -version: '{build}' -image: 'Visual Studio 2017' -platform: x64 - -max_jobs: 1 - -environment: - GOPATH: c:\go - docker_username: - secure: em/TNLUXxG19O/HvbvfJuQ== - docker_password: - secure: Yo9FJJqihaNz5q8T4Jz8tQ== - -branches: - only: - - master - -install: - - ps: | - docker version - go version - go env - -build_script: - - ps: | - if ( $env:APPVEYOR_REPO_TAG -eq 'false' ) { - $version = $env:APPVEYOR_REPO_COMMIT - } else { - $version = $env:APPVEYOR_REPO_TAG_NAME - } - go build -ldflags "-X main.Version=$version" -a -o release/drone-discord.exe . - - docker pull microsoft/nanoserver:10.0.14393.1884 - docker build -f docker/Dockerfile.windows.amd64 -t appleboy/drone-discord:windows-amd64 . - -test_script: - - ps: | - docker run --rm appleboy/drone-discord:windows-amd64 --version - -deploy_script: - - ps: | - $ErrorActionPreference = 'Stop'; - if ( $env:APPVEYOR_PULL_REQUEST_NUMBER ) { - Write-Host Nothing to deploy. - } else { - echo $env:DOCKER_PASSWORD | docker login --username $env:DOCKER_USERNAME --password-stdin - if ( $env:APPVEYOR_REPO_TAG -eq 'true' ) { - $major,$minor,$patch = $env:APPVEYOR_REPO_TAG_NAME.split('.') - docker push appleboy/drone-discord:windows-amd64 - docker tag appleboy/drone-discord:windows-amd64 appleboy/drone-discord:$major.$minor.$patch-windows-amd64 - docker push appleboy/drone-discord:$major.$minor.$patch-windows-amd64 - docker tag appleboy/drone-discord:windows-amd64 appleboy/drone-discord:$major.$minor-windows-amd64 - docker push appleboy/drone-discord:$major.$minor-windows-amd64 - docker tag appleboy/drone-discord:windows-amd64 appleboy/drone-discord:$major-windows-amd64 - docker push appleboy/drone-discord:$major-windows-amd64 - } else { - if ( $env:APPVEYOR_REPO_BRANCH -eq 'master' ) { - docker push appleboy/drone-discord:windows-amd64 - } - } - } diff --git a/.drone.jsonnet b/.drone.jsonnet deleted file mode 100644 index d4a7b63..0000000 --- a/.drone.jsonnet +++ /dev/null @@ -1,16 +0,0 @@ -local pipeline = import 'pipeline.libsonnet'; -local name = 'drone-discord'; - -[ - pipeline.test, - pipeline.build(name, 'linux', 'amd64'), - pipeline.build(name, 'linux', 'arm64'), - pipeline.build(name, 'linux', 'arm'), - pipeline.release, - pipeline.notifications(depends_on=[ - 'linux-amd64', - 'linux-arm64', - 'linux-arm', - 'release-binary', - ]), -] diff --git a/.drone.windows.yml b/.drone.windows.yml deleted file mode 100644 index c1d85dc..0000000 --- a/.drone.windows.yml +++ /dev/null @@ -1,76 +0,0 @@ ---- -kind: pipeline -name: windows-amd64 - -platform: - os: windows - arch: amd64 - -steps: - - name: build-push - pull: always - image: golang:1.11 - commands: - - 'go build -v -ldflags "-X main.build=${DRONE_BUILD_NUMBER}" -a -o release/windows/amd64/drone-discord' - environment: - CGO_ENABLED: 0 - GO111MODULE: on - when: - event: - - push - - pull_request - - - name: build-tag - pull: always - image: golang:1.11 - commands: - - 'go build -v -ldflags "-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}" -a -o release/windows/amd64/drone-discord' - environment: - CGO_ENABLED: 0 - GO111MODULE: on - when: - event: - - tag - - - name: executable - pull: always - image: golang:1.11 - commands: - - ./release/windows/amd64/drone-discord --help - - - name: dryrun - pull: always - image: plugins/docker:windows-amd64 - settings: - dockerfile: docker/Dockerfile.windows.amd64 - dry_run: true - password: - from_secret: docker_password - repo: appleboy/drone-discord - tags: windows-amd64 - username: - from_secret: docker_username - when: - event: - - pull_request - - - name: publish - pull: always - image: plugins/docker:windows-amd64 - settings: - auto_tag: true - auto_tag_suffix: windows-amd64 - dockerfile: docker/Dockerfile.windows.amd64 - password: - from_secret: docker_password - repo: appleboy/drone-discord - username: - from_secret: docker_username - when: - event: - - push - - tag - -trigger: - branch: - - master diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index cfd0f18..0000000 --- a/.drone.yml +++ /dev/null @@ -1,378 +0,0 @@ ---- -kind: pipeline -name: testing - -platform: - os: linux - arch: amd64 - -steps: -- name: vet - pull: always - image: golang:1.16 - commands: - - make vet - volumes: - - name: gopath - path: /go - -- name: lint - pull: always - image: golang:1.16 - commands: - - make lint - volumes: - - name: gopath - path: /go - -- name: misspell - pull: always - image: golang:1.16 - commands: - - make misspell-check - volumes: - - name: gopath - path: /go - -- name: test - pull: always - image: golang:1.16 - commands: - - make test - - make coverage - environment: - WEBHOOK_ID: - from_secret: webhook_id - WEBHOOK_TOKEN: - from_secret: webhook_token - volumes: - - name: gopath - path: /go - -- name: codecov - pull: always - image: robertstettner/drone-codecov - settings: - token: - from_secret: codecov_token - -volumes: -- name: gopath - temp: {} - ---- -kind: pipeline -name: linux-amd64 - -platform: - os: linux - arch: amd64 - -steps: -- name: build-push - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - exclude: - - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/amd64/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - - tag - -- name: executable - pull: always - image: golang:1.16 - commands: - - ./release/linux/amd64/drone-discord --help - -- name: dryrun - pull: always - image: plugins/docker:linux-amd64 - settings: - cache_from: appleboy/drone-discord - dockerfile: docker/Dockerfile.linux.amd64 - dry_run: true - repo: appleboy/drone-discord - tags: linux-amd64 - when: - event: - - pull_request - -- name: publish - pull: always - image: plugins/docker:linux-amd64 - settings: - auto_tag: true - auto_tag_suffix: linux-amd64 - cache_from: appleboy/drone-discord - daemon_off: false - dockerfile: docker/Dockerfile.linux.amd64 - password: - from_secret: docker_password - repo: appleboy/drone-discord - username: - from_secret: docker_username - when: - event: - exclude: - - pull_request - -trigger: - ref: - - refs/heads/master - - refs/pull/** - - refs/tags/** - -depends_on: -- testing - ---- -kind: pipeline -name: linux-arm64 - -platform: - os: linux - arch: arm64 - -steps: -- name: build-push - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - exclude: - - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm64/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - - tag - -- name: executable - pull: always - image: golang:1.16 - commands: - - ./release/linux/arm64/drone-discord --help - -- name: dryrun - pull: always - image: plugins/docker:linux-arm64 - settings: - cache_from: appleboy/drone-discord - dockerfile: docker/Dockerfile.linux.arm64 - dry_run: true - repo: appleboy/drone-discord - tags: linux-arm64 - when: - event: - - pull_request - -- name: publish - pull: always - image: plugins/docker:linux-arm64 - settings: - auto_tag: true - auto_tag_suffix: linux-arm64 - cache_from: appleboy/drone-discord - daemon_off: false - dockerfile: docker/Dockerfile.linux.arm64 - password: - from_secret: docker_password - repo: appleboy/drone-discord - username: - from_secret: docker_username - when: - event: - exclude: - - pull_request - -trigger: - ref: - - refs/heads/master - - refs/pull/** - - refs/tags/** - -depends_on: -- testing - ---- -kind: pipeline -name: linux-arm - -platform: - os: linux - arch: arm - -steps: -- name: build-push - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - exclude: - - tag - -- name: build-tag - pull: always - image: golang:1.16 - commands: - - go build -v -ldflags '-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}' -a -o release/linux/arm/drone-discord - environment: - CGO_ENABLED: 0 - when: - event: - - tag - -- name: executable - pull: always - image: golang:1.16 - commands: - - ./release/linux/arm/drone-discord --help - -- name: dryrun - pull: always - image: plugins/docker:linux-arm - settings: - cache_from: appleboy/drone-discord - dockerfile: docker/Dockerfile.linux.arm - dry_run: true - repo: appleboy/drone-discord - tags: linux-arm - when: - event: - - pull_request - -- name: publish - pull: always - image: plugins/docker:linux-arm - settings: - auto_tag: true - auto_tag_suffix: linux-arm - cache_from: appleboy/drone-discord - daemon_off: false - dockerfile: docker/Dockerfile.linux.arm - password: - from_secret: docker_password - repo: appleboy/drone-discord - username: - from_secret: docker_username - when: - event: - exclude: - - pull_request - -trigger: - ref: - - refs/heads/master - - refs/pull/** - - refs/tags/** - -depends_on: -- testing - ---- -kind: pipeline -name: release-binary - -platform: - os: linux - arch: amd64 - -steps: -- name: build-all-binary - pull: always - image: golang:1.16 - commands: - - make release - when: - event: - - tag - -- name: deploy-all-binary - pull: always - image: plugins/github-release - settings: - api_key: - from_secret: github_release_api_key - files: - - dist/release/* - when: - event: - - tag - -trigger: - ref: - - refs/tags/** - -depends_on: -- testing - ---- -kind: pipeline -name: notifications - -platform: - os: linux - arch: amd64 - -steps: -- name: discord - pull: always - image: appleboy/drone-discord - settings: - message: "{{#success build.status}} āœ… Build #{{build.number}} of `{{repo.name}}` succeeded.\n\nšŸ“ Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n🌐 {{ build.link }}\n\n āœ… duration: {{duration build.started build.finished}} \n\n āœ… started: {{datetime build.started \"2006/01/02 15:04\" \"Asia/Taipei\"}} \n\n āœ… finished: {{datetime build.finished \"2006/01/02 15:04\" \"Asia/Taipei\"}} {{else}} āŒ Build #{{build.number}} of `{{repo.name}}` failed.\n\nšŸ“ Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n🌐 {{ build.link }}\n\n āœ… duration: {{duration build.started build.finished}} \n\n āœ… started: {{datetime build.started \"2006/01/02 15:04\" \"Asia/Taipei\"}} \n\n āœ… finished: {{datetime build.finished \"2006/01/02 15:04\" \"Asia/Taipei\"}}{{/success}}\n" - webhook_id: - from_secret: webhook_id - webhook_token: - from_secret: webhook_token - -- name: manifest - pull: always - image: plugins/manifest - settings: - ignore_missing: true - password: - from_secret: docker_password - spec: docker/manifest.tmpl - username: - from_secret: docker_username - -trigger: - ref: - - refs/heads/master - - refs/tags/** - -depends_on: -- linux-amd64 -- linux-arm64 -- linux-arm -- release-binary - -... diff --git a/.revive.toml b/.revive.toml deleted file mode 100644 index 74743d5..0000000 --- a/.revive.toml +++ /dev/null @@ -1,25 +0,0 @@ -ignoreGeneratedHeader = false -severity = "warning" -confidence = 0.8 -errorCode = 1 -warningCode = 1 - -[rule.blank-imports] -[rule.context-as-argument] -[rule.context-keys-type] -[rule.dot-imports] -[rule.error-return] -[rule.error-strings] -[rule.error-naming] -[rule.exported] -[rule.if-return] -[rule.increment-decrement] -[rule.var-naming] -[rule.var-declaration] -[rule.package-comments] -[rule.range] -[rule.receiver-naming] -[rule.time-naming] -[rule.unexported-return] -[rule.indent-error-flow] -[rule.errorf] diff --git a/pipeline.libsonnet b/pipeline.libsonnet deleted file mode 100644 index 4a67e67..0000000 --- a/pipeline.libsonnet +++ /dev/null @@ -1,268 +0,0 @@ -{ - test:: { - kind: 'pipeline', - name: 'testing', - platform: { - os: 'linux', - arch: 'amd64', - }, - steps: [ - { - name: 'vet', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make vet', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'lint', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make lint', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'misspell', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make misspell-check', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'test', - image: 'golang:1.16', - pull: 'always', - environment: { - WEBHOOK_ID: { 'from_secret': 'webhook_id' }, - WEBHOOK_TOKEN: { 'from_secret': 'webhook_token' }, - }, - commands: [ - 'make test', - 'make coverage', - ], - volumes: [ - { - name: 'gopath', - path: '/go', - }, - ], - }, - { - name: 'codecov', - image: 'robertstettner/drone-codecov', - pull: 'always', - settings: { - token: { 'from_secret': 'codecov_token' }, - }, - }, - ], - volumes: [ - { - name: 'gopath', - temp: {}, - }, - ], - }, - - build(name, os='linux', arch='amd64'):: { - kind: 'pipeline', - name: os + '-' + arch, - platform: { - os: os, - arch: arch, - }, - steps: [ - { - name: 'build-push', - image: 'golang:1.16', - pull: 'always', - environment: { - CGO_ENABLED: '0', - }, - commands: [ - 'go build -v -ldflags \'-X main.build=${DRONE_BUILD_NUMBER}\' -a -o release/' + os + '/' + arch + '/' + name, - ], - when: { - event: { - exclude: [ 'tag' ], - }, - }, - }, - { - name: 'build-tag', - image: 'golang:1.16', - pull: 'always', - environment: { - CGO_ENABLED: '0', - }, - commands: [ - 'go build -v -ldflags \'-X main.version=${DRONE_TAG##v} -X main.build=${DRONE_BUILD_NUMBER}\' -a -o release/' + os + '/' + arch + '/' + name, - ], - when: { - event: [ 'tag' ], - }, - }, - { - name: 'executable', - image: 'golang:1.16', - pull: 'always', - commands: [ - './release/' + os + '/' + arch + '/' + name + ' --help', - ], - }, - { - name: 'dryrun', - image: 'plugins/docker:' + os + '-' + arch, - pull: 'always', - settings: { - daemon_off: false, - dry_run: true, - tags: os + '-' + arch, - dockerfile: 'docker/Dockerfile.' + os + '.' + arch, - repo: 'appleboy/' + name, - cache_from: 'appleboy/' + name, - }, - when: { - event: [ 'pull_request' ], - }, - }, - { - name: 'publish', - image: 'plugins/docker:' + os + '-' + arch, - pull: 'always', - settings: { - daemon_off: 'false', - auto_tag: true, - auto_tag_suffix: os + '-' + arch, - dockerfile: 'docker/Dockerfile.' + os + '.' + arch, - repo: 'appleboy/' + name, - cache_from: 'appleboy/' + name, - username: { 'from_secret': 'docker_username' }, - password: { 'from_secret': 'docker_password' }, - }, - when: { - event: { - exclude: [ 'pull_request' ], - }, - }, - }, - ], - depends_on: [ - 'testing', - ], - trigger: { - ref: [ - 'refs/heads/master', - 'refs/pull/**', - 'refs/tags/**', - ], - }, - }, - - release:: { - kind: 'pipeline', - name: 'release-binary', - platform: { - os: 'linux', - arch: 'amd64', - }, - steps: [ - { - name: 'build-all-binary', - image: 'golang:1.16', - pull: 'always', - commands: [ - 'make release' - ], - when: { - event: [ 'tag' ], - }, - }, - { - name: 'deploy-all-binary', - image: 'plugins/github-release', - pull: 'always', - settings: { - files: [ 'dist/release/*' ], - api_key: { 'from_secret': 'github_release_api_key' }, - }, - when: { - event: [ 'tag' ], - }, - }, - ], - depends_on: [ - 'testing', - ], - trigger: { - ref: [ - 'refs/tags/**', - ], - }, - }, - - notifications(os='linux', arch='amd64', depends_on=[]):: { - kind: 'pipeline', - name: 'notifications', - platform: { - os: os, - arch: arch, - }, - steps: [ - { - name: 'discord', - image: 'appleboy/drone-discord', - pull: 'always', - settings: { - webhook_id: { from_secret: 'webhook_id' }, - webhook_token: { from_secret: 'webhook_token' }, - message: '{{#success build.status}} āœ… Build #{{build.number}} of `{{repo.name}}` succeeded.\n\nšŸ“ Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n🌐 {{ build.link }}\n\n āœ… duration: {{duration build.started build.finished}} \n\n āœ… started: {{datetime build.started "2006/01/02 15:04" "Asia/Taipei"}} \n\n āœ… finished: {{datetime build.finished "2006/01/02 15:04" "Asia/Taipei"}} {{else}} āŒ Build #{{build.number}} of `{{repo.name}}` failed.\n\nšŸ“ Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n🌐 {{ build.link }}\n\n āœ… duration: {{duration build.started build.finished}} \n\n āœ… started: {{datetime build.started "2006/01/02 15:04" "Asia/Taipei"}} \n\n āœ… finished: {{datetime build.finished "2006/01/02 15:04" "Asia/Taipei"}}{{/success}}\n', - }, - }, - { - name: 'manifest', - image: 'plugins/manifest', - pull: 'always', - settings: { - username: { from_secret: 'docker_username' }, - password: { from_secret: 'docker_password' }, - spec: 'docker/manifest.tmpl', - ignore_missing: true, - }, - }, - ], - depends_on: depends_on, - trigger: { - ref: [ - 'refs/heads/master', - 'refs/tags/**', - ], - }, - }, - - signature(key):: { - kind: 'signature', - hmac: key, - } -}