Files
pulumi-dokploy/.gitea/workflows/release.yml
Max Vojtkov ad3e908c98
Some checks failed
build / build (push) Failing after 49s
Fix the upstream checkout and skip the dead cache server
Two separate CI failures:

- The cross-repo checkout of terraform-provider-dokploy asked the API
  for the default branch and got "not found", failing the build. An
  explicit ref: main skips the lookup entirely.
- setup-go caches by default, and this runner's cache server is
  unreachable from job containers, so restore and save each block until
  they time out. The same change cut the upstream provider's build from
  15m46s to 2m37s.
2026-08-09 14:00:20 +03:00

150 lines
4.8 KiB
YAML

name: release
on:
push:
tags: ["v*.*.*"]
env:
GO_VERSION: "1.25.x"
NODE_VERSION: "20.x"
PYTHON_VERSION: "3.11"
DOTNET_VERSION: "8.0.x"
UPSTREAM_REPO: usr_unknown/terraform-provider-dokploy
UPSTREAM_DIR: dokploy-teraform
# Everything below authenticates with the token Gitea injects into every
# run, so releasing needs no configured secrets at all.
GITEA_HOST: gitea.coolify.vojtkov.dev
GITEA_OWNER: usr_unknown
jobs:
# The plugin binaries. Pulumi resolves them from this release via the
# PluginDownloadURL baked into the schema, so this has to land before anyone
# installs an SDK.
plugin:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: pulumi-dokploy
fetch-depth: 0
- uses: actions/checkout@v4
with:
repository: ${{ env.UPSTREAM_REPO }}
path: ${{ env.UPSTREAM_DIR }}
token: ${{ secrets.GITEA_TOKEN }}
# checkout's default-branch lookup returns "not found" on this Gitea.
ref: main
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: false
- uses: goreleaser/goreleaser-action@v6
with:
version: latest
args: release --clean
workdir: pulumi-dokploy
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
sdks:
needs: plugin
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
path: pulumi-dokploy
- uses: actions/checkout@v4
with:
repository: ${{ env.UPSTREAM_REPO }}
path: ${{ env.UPSTREAM_DIR }}
token: ${{ secrets.GITEA_TOKEN }}
# checkout's default-branch lookup returns "not found" on this Gitea.
ref: main
- uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: false
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
- uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Derive version from tag
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_ENV"
- name: Build SDKs
working-directory: pulumi-dokploy
run: make build_sdks VERSION=${{ env.VERSION }}
- name: Publish to the Gitea npm registry
working-directory: pulumi-dokploy/sdk/nodejs/bin
env:
TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
cat > .npmrc <<EOF
@maxvojtkov:registry=https://${GITEA_HOST}/api/packages/${GITEA_OWNER}/npm/
//${GITEA_HOST}/api/packages/${GITEA_OWNER}/npm/:_authToken=${TOKEN}
EOF
npm publish
- name: Publish to the Gitea PyPI registry
working-directory: pulumi-dokploy/sdk/python
env:
TWINE_USERNAME: ${{ env.GITEA_OWNER }}
TWINE_PASSWORD: ${{ secrets.GITEA_TOKEN }}
run: |
python -m pip install --upgrade build twine
python -m build
python -m twine upload \
--repository-url "https://${GITEA_HOST}/api/packages/${GITEA_OWNER}/pypi" \
dist/*
- name: Publish to the Gitea NuGet registry
working-directory: pulumi-dokploy/sdk/dotnet
env:
TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
dotnet pack --configuration Release --output ./nupkg
dotnet nuget push ./nupkg/*.nupkg \
--source "https://${GITEA_HOST}/api/packages/${GITEA_OWNER}/nuget/index.json" \
--api-key "$TOKEN" --skip-duplicate
# The Go SDK's module path stays github.com/maxvojtkov/..., which no
# amount of Gitea hosting changes. Uploading it to Gitea's Go registry is
# what makes that path resolvable anyway: consumers point GOPROXY here.
#
# A module zip must have every entry prefixed `<module>@<version>/` and
# must contain no directory entries at all -- hence `zip -D`, without
# which `go get` fails with "has unexpected file".
- name: Publish the Go SDK to the Gitea Go registry
working-directory: pulumi-dokploy
env:
TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
set -euo pipefail
MODULE=github.com/maxvojtkov/pulumi-dokploy/sdk
STAGE="$(mktemp -d)"
DEST="$STAGE/$MODULE@v${VERSION}"
mkdir -p "$DEST"
cp sdk/go.mod sdk/go.sum "$DEST/"
cp -R sdk/go "$DEST/"
(cd "$STAGE" && zip -qrD "$STAGE/sdk.zip" . -x 'sdk.zip')
curl -fsSL -X PUT \
--user "${GITEA_OWNER}:${TOKEN}" \
--upload-file "$STAGE/sdk.zip" \
"https://${GITEA_HOST}/api/packages/${GITEA_OWNER}/go/upload"
echo "Published $MODULE@v${VERSION}"