From 493bfb4c210c4476a3728a2558de3c4b3e6fb7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Pazos?= Date: Mon, 30 Sep 2024 09:00:50 -0300 Subject: [PATCH] chore: migrate to github actions --- .github/workflows/ci.yaml | 119 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 .github/workflows/ci.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..263aefb1 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,119 @@ +name: CI + +on: + push: + tags: + - 'v[0-9]+(\.[0-9]+)*(-.*)*' + pull_request: + +permissions: + contents: read + id-token: write + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: 1.21.8 + - run: make test + + build: + needs: test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: 1.21.8 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.3 + - name: Install FPM and dependencies + run: | + sudo apt-get update + sudo apt-get install rpm + gem install fpm + - name: Install go-bindata + run: go install github.com/go-bindata/go-bindata/...@latest + - run: make LINUX_PACKAGE_GOARCH=amd64 build-linux + - run: make LINUX_PACKAGE_GOARCH=arm64 build-linux + - run: make build-win + - run: make build-darwin + - run: make build-bsd + - name: Make packages + run: make packages + - name: Build Docker image + run: | + make docker + docker save -o build/carbon-relay-ng.tar grafana/carbon-relay-ng + - name: Store version + run: git describe --tags --always | sed 's/^v//' > build/version.txt + - name: Upload package artifacts + if: github.ref_type == 'tag' + uses: actions/upload-artifact@v4 + with: + include-hidden-files: true + name: package-artifacts + path: build + + # Release, runs on tags only + deploy: + needs: build + runs-on: ubuntu-latest + if: github.ref_type == 'tag' + steps: + - uses: actions/checkout@v3 + - name: Download package artifacts + uses: actions/download-artifact@v4 + with: + name: package-artifacts + path: build + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 3.3 + - name: Install package_cloud + run: gem install package_cloud + - name: Set PACKAGECLOUD_TOKEN + uses: grafana/shared-workflows/actions/get-vault-secrets@main + with: + repo_secrets: | + PACKAGECLOUD_TOKEN=packagecloud:token + - name: Push packages + run: | + version=$(cat build/version.txt) + repo=raintank/raintank + [[ "$version" == *-* ]] && repo=raintank/testing + package_cloud push $repo/ubuntu/trusty build/deb-upstart/carbon-relay-ng-*.deb + package_cloud push $repo/ubuntu/xenial build/deb-systemd/carbon-relay-ng-*.deb + package_cloud push $repo/debian/jessie build/deb-systemd/carbon-relay-ng-*.deb + package_cloud push $repo/debian/stretch build/deb-systemd/carbon-relay-ng-*.deb + package_cloud push $repo/debian/buster build/deb-systemd/carbon-relay-ng-*.deb + package_cloud push $repo/el/6 build/centos-6/carbon-relay-ng-*.el6.*.rpm + package_cloud push $repo/el/7 build/centos-7/carbon-relay-ng-*.el7.*.rpm + - name: Load Docker image + run: docker load -i build/carbon-relay-ng.tar + - name: Login to DockerHub + uses: grafana/shared-workflows/actions/dockerhub-login@main + - name: Push Docker image + run: | + version=$(cat build/version.txt) + docker push grafana/carbon-relay-ng:$version + tag=latest + [[ "$version" == *-* ]] && tag=master + docker push grafana/carbon-relay-ng:$tag + + github_binaries: + if: github.ref_type == 'tag' + needs: build + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + - uses: actions/setup-go@v4 + with: + go-version: 1.21.8 + - name: Run goreleaser + run: curl -sfL https://goreleaser.com/static/run | bash