diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index aa307373..00000000 --- a/.drone.yml +++ /dev/null @@ -1,62 +0,0 @@ ---- -kind: pipeline -name: test docker build -steps: - - image: plugins/docker - name: build + test + push - settings: - dry_run: true - password: - from_secret: docker-hub-password - repo: grafana/plugin-validator-cli - tags: latest - username: - from_secret: docker-hub-username -trigger: - branch: - exclude: - - main - event: - include: - - push - - pull_request -type: docker ---- -kind: pipeline -name: build and push pipeline -steps: - - image: plugins/docker - name: build + test + push - settings: - dry_run: false - password: - from_secret: docker-hub-password - repo: grafana/plugin-validator-cli - tags: latest - username: - from_secret: docker-hub-username -trigger: - branch: - include: - - main - event: - include: - - push -type: docker ---- -get: - name: username - path: secret/data/common/docker-hub -kind: secret -name: docker-hub-username ---- -get: - name: password - path: secret/data/common/docker-hub -kind: secret -name: docker-hub-password ---- -kind: signature -hmac: 931e3ddd7923cb1c3a3dfa888495ab6789a0ba731c9a018a7987fd8081ab286c - -... diff --git a/.github/workflows/do-release.yml b/.github/workflows/do-release.yml index 11b76109..6a582ce9 100644 --- a/.github/workflows/do-release.yml +++ b/.github/workflows/do-release.yml @@ -1,4 +1,4 @@ -name: Bump Version +name: Bump Version and release on: workflow_dispatch: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 626c8640..a45b1143 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,4 +1,4 @@ -name: Create release and publish +name: Create release and publish to github, npm and docker hub on: push: @@ -9,7 +9,7 @@ permissions: contents: write jobs: - goreleaser: + release-to-github: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -20,19 +20,25 @@ jobs: with: go-version-file: go.mod check-latest: true - # More assembly might be required: Docker logins, GPG, etc. It all depends - # on your needs. + + - name: Generate token + id: generate_token + uses: tibdex/github-app-token@3beb63f4bd073e61482598c45c71c1019b59b73a + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PEM }} + - uses: goreleaser/goreleaser-action@v6 with: - # either 'goreleaser' (default) or 'goreleaser-pro': distribution: goreleaser version: latest args: release --clean env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - releaseToNpm: + GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }} + + release-to-npm: runs-on: ubuntu-latest - needs: goreleaser + needs: release-to-github steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 @@ -43,3 +49,26 @@ jobs: - run: npm publish env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + release-to-dockerhub: + runs-on: ubuntu-latest + # this job doesn't really need the github release, but it is a fast + # way to prevent it from running if the release is bad + needs: release-to-github + steps: + - uses: actions/checkout@v4 + - name: Get version from package.json + id: get_version + run: | + echo "version=$(jq -r .version package.json)" >> "$GITHUB_OUTPUT" + + - id: push-to-dockerhub + uses: grafana/shared-workflows/actions/build-push-to-dockerhub@main + with: + repository: grafana/plugin-validator-cli + context: . + tags: |- + "v${{ steps.get_version.outputs.version }}" + "latest" + push: true + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 147551b4..34993860 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,24 +1,23 @@ -name: Build and Test +name: Build and Test on pull request on: - push: - branches: - - main pull_request: branches: - main jobs: - build: + test-docker-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and test Docker container - uses: docker/build-push-action@v6 + - id: push-to-dockerhub + uses: grafana/shared-workflows/actions/build-push-to-dockerhub@main with: + repository: grafana/plugin-validator-cli context: . + tags: |- + "test-pr" push: false + cache-from: type=gha + cache-to: type=gha,mode=max