diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fb92a4a..8fbca23 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -5,6 +5,7 @@ on: branches: [main] pull_request: + jobs: lint: runs-on: ubuntu-latest diff --git a/.github/workflows/releaser-pleaser.yaml b/.github/workflows/releaser-pleaser.yaml new file mode 100644 index 0000000..934e1d0 --- /dev/null +++ b/.github/workflows/releaser-pleaser.yaml @@ -0,0 +1,25 @@ +name: releaser-pleaser + +on: + push: + branches: [main, action] # TODO: Remove before merging + pull_request: + types: + - edited + - labeled + - unlabeled + +permissions: + contents: write + issues: write + pull-requests: write + +jobs: + releaser-pleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - run: env + - uses: ./ diff --git a/action.yml b/action.yml new file mode 100644 index 0000000..deac769 --- /dev/null +++ b/action.yml @@ -0,0 +1,24 @@ +name: 'releaser-pleaser' +description: 'automated releases based on conventional commits' +author: Julian Tölle +branding: + icon: 'package' + color: 'red' +inputs: + branch: + default: main + description: "This branch is used as the target for releases." + token: + description: 'GitHub token for creating and grooming release PRs, defaults to using secrets.GITHUB_TOKEN' + required: false + default: ${{ github.token }} +outputs: {} +runs: + using: 'docker' + image: ghcr.io/apricote/releaser-pleaser:v0.1.0 + args: + - run + - --forge=github + - --branch=${{ inputs.branch }} + env: + GITHUB_TOKEN: ${{ inputs.token }} diff --git a/forge.go b/forge.go index 23d5902..8a3c9bb 100644 --- a/forge.go +++ b/forge.go @@ -21,6 +21,7 @@ const ( GitHubPRStateClosed = "closed" GitHubEnvAPIToken = "GITHUB_TOKEN" GitHubEnvUsername = "GITHUB_USER" + GitHubEnvRepository = "GITHUB_REPOSITORY" GitHubLabelColor = "dedede" ) @@ -587,7 +588,16 @@ func (g *GitHubOptions) autodiscover() { if username := os.Getenv(GitHubEnvUsername); username != "" { g.Username = username } - // TODO: Read settings from GitHub Actions env vars + + if envRepository := os.Getenv(GitHubEnvRepository); envRepository != "" { + // GITHUB_REPOSITORY=apricote/releaser-pleaser + parts := strings.Split(envRepository, "/") + if len(parts) == 2 { + g.Owner = parts[0] + g.Repo = parts[1] + g.Repository = envRepository + } + } } type GitHubOptions struct {