From afc24185d3f6be0689f8ef78abf91420b7e6b701 Mon Sep 17 00:00:00 2001 From: Aaron Guise Date: Thu, 24 Oct 2024 16:36:25 +1300 Subject: [PATCH] =?UTF-8?q?ci:=20Added=20Gitea=20Actions=20config=20?= =?UTF-8?q?=F0=9F=91=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 41 +++++++++++++++++++++++++++++++++++++ .semrelrc | 22 ++++++++++++++++++++ scripts/build.sh | 24 ++++++++++++++++++++++ tests/misc/cleanup.php | 22 ++++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 .github/workflows/build.yml create mode 100644 .semrelrc create mode 100755 scripts/build.sh create mode 100644 tests/misc/cleanup.php diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8c586ac --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,41 @@ +name: CI +on: + push: + branches: + - "**" + tags: + - " !**" + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: '1.22' + - name: Install gitea provider for Go Semantic Release + run: | + mkdir -p .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/ && \ + wget https://github.com/cybercinch/go-semantic-release-provider-gitea/releases/download/v${GITEA_PROVIDER_VER}/go-semantic-release-provider-gitea_v${GITEA_PROVIDER_VER}_linux_amd64 \ + -O .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/gitea && \ + chmod a+x .semrel/$(go env GOOS)_$(go env GOARCH)/provider-gitea/${GITEA_PROVIDER_VER}/gitea + env: + GITEA_PROVIDER_VER: 1.0.11 + - uses: "shivammathur/setup-php@v2" + with: + php-version: "7.4" + - uses: "ramsey/composer-install@v3" + + - name: Create Release Archive + id: semrelease + uses: go-semantic-release/action@v1 + with: + # custom-arguments: --provider=gitea + hooks: exec + env: + GITEA_TOKEN: ${{ secrets.G_TOKEN }} + GITEA_HOST: ${{ secrets.G_SERVER_URL}} + env: + GITEA_TOKEN: ${{ secrets.G_TOKEN }} + GITEA_HOST: ${{ secrets.G_SERVER_URL}} diff --git a/.semrelrc b/.semrelrc new file mode 100644 index 0000000..2e6b6d3 --- /dev/null +++ b/.semrelrc @@ -0,0 +1,22 @@ +{ + "plugins": { + "provider": { + "name": "gitea" + }, + "changelog-generator": { + "name": "default", + "options": { + "emojis": "true" + } + }, + "hooks": { + "names": [ + "exec" + ], + "options": { + "exec_on_success": "./scripts/build.sh v{{.NewRelease.Version}}", + "exec_on_no_release": "echo {{.Reason}}: {{.Message}}" + } + } + } +} diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..1f72330 --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +mkdir -p ./build/tmp +echo "Made temporary directory" + +# Package up the release +tar -czf "./build/ugly-queue-${1}.tar.gz" \ + --exclude='./vendor' \ + --exclude='./tests' \ + --exclude='./build' \ + . +RELEASE_ID=$(curl --silent -X 'GET' "${GITEA_HOST}/api/v1/repos/cybercinch/ugly-queue/releases/latest" \ +-H "accept: application/json" \ +-H "Authorization: token ${GITEA_TOKEN}" | jq -r .id) + +# Attach to release +curl --silent -X 'POST' "${GITEA_HOST}/api/v1/repos/cybercinch/ugly-queue/releases/${RELEASE_ID}/assets?name=ugly-queue-${1}.tar.gz" \ +-H "Authorization: token ${GITEA_TOKEN}" \ +--form attachment="@build/ugly-queue-${1}.tar.gz" + +# Upload the artifact to composer registry +curl -H "Authorization: token ${GITEA_TOKEN}" \ + --upload-file "build/ugly-queue-${1}.tar.gz" \ + "${GITEA_HOST}/api/packages/cybercinch/composer?version=${1}" \ No newline at end of file diff --git a/tests/misc/cleanup.php b/tests/misc/cleanup.php new file mode 100644 index 0000000..bc7caa8 --- /dev/null +++ b/tests/misc/cleanup.php @@ -0,0 +1,22 @@ +