From a57a6c04cf7d4840e88432aad6281d1e125f0d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Istv=C3=A1n=20So=C3=B3s?= Date: Mon, 16 Jan 2023 12:42:12 +0100 Subject: [PATCH] Reusable workflow for publishing. (#64) * Reusable workflow for publishing. --- .github/workflows/publish.yml | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..fb55d87 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,44 @@ +name: Publish to pub.dev + +## Caller of this workflow should use it as follows: +## jobs: +## publish: +## uses: dart-lang/setup-dart/.github/workflows/publish.yml@main [or a recent commit hash / version tag] +## # with: +## # working-directory: path/to/sub/directory + +on: + workflow_call: + inputs: + environment: + description: if specified, the workflow is required to be run in this environment (with additional approvals) + required: false + type: string + working-directory: + description: directory with-in the repository where the package is located (if not in the repository root) + required: false + type: string + +jobs: + publish: + name: 'Publish to pub.dev' + environment: ${{ inputs.environment }} + permissions: + id-token: write # This is required for requesting the JWT + runs-on: ubuntu-latest + steps: + # Checkout repository + - uses: actions/checkout@v3 + # Setup Dart SDK with JWT token + - uses: dart-lang/setup-dart@7b1734b5b08d53fbf347cf96b664fa1a49cc6497 + # Minimal package setup and dry run checks. + - name: Install dependencies + run: dart pub get + working-directory: ${{ inputs.working-directory }} + - name: Publish - dry run + run: dart pub publish --dry-run + working-directory: ${{ inputs.working-directory }} + # Publishing... + - name: Publish to pub.dev + run: dart pub publish -f + working-directory: ${{ inputs.working-directory }}