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 <@/` 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}"