Skip to content

Build a skeleton for actions #69

@limakzi

Description

@limakzi

Idea.

I have been thinking about writing a skeleton of action for gap-users.
So instead of asking the gap-package maintainers to run all set of actions, we will ask them to write an abstraction layer and not bother them about our internal updates as long as they are major-compliant.

Benefits.
✅ We could deliver the whole value for the end users and not bother them about internal actions updates.
✅ We will treat gap-packages maintainers as internal clients of gap-actions ecosystem.
✅ It will simplify updates across smaller pieces (actions).
✅ I think it will cover 90% of use cases, like with release-pkg and updates-gh-pages.

Disadvantage.
❌ An early stage for this project.
We should probably help the every package maintainer to migrate and convince its valuable.
❌ Another action to maintain.

Happy to discuss this idea, @stertooy, @fingolfin, @ChrisJefferson , @wilfwilson.


Examples below.

Before.

name: CI

# Trigger the workflow on push or pull request
on:
  push:
    branches:
      - master
      - main
  pull_request:

# the `concurrency` settings ensure that not too many CI jobs run in parallel
concurrency:
  # group by workflow and ref; the last slightly strange component ensures that for pull
  # requests, we limit to 1 concurrent job, but for the default repository branch we don't
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref_name != github.event.repository.default_branch || github.run_number }}
  # Cancel intermediate builds, but only if it is a pull request build.
  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

jobs:
  # The CI test job
  test:
    name: ${{ matrix.gap-branch }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        gap-branch:
          - master
          - stable-4.15
          - stable-4.14
          - stable-4.13
          - stable-4.12
          - stable-4.11
          - stable-4.10
          - stable-4.9

    steps:
      - uses: actions/checkout@v6
      - uses: gap-actions/setup-gap@v2
        with:
          GAPBRANCH: ${{ matrix.gap-branch }}
      - uses: gap-actions/build-pkg@v1
      - uses: gap-actions/run-pkg-tests@v3
      - uses: gap-actions/run-pkg-tests@v3
        with:
          only-needed: true
      - uses: gap-actions/process-coverage@v2
      - uses: codecov/codecov-action@v5
        with:
          token: ${{ secrets.CODECOV_TOKEN }}

After.

name: CI

# Trigger the workflow on push or pull request
on:
  push:
    branches:
      - master
      - main
  pull_request:

# the `concurrency` settings ensure that not too many CI jobs run in parallel
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref_name != github.event.repository.default_branch || github.run_number }}
  cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}

jobs:
  # The CI test job
  test:
    name: ${{ matrix.gap-branch }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        gap-branch:
          - master
          - stable-4.15
          - stable-4.14
          - stable-4.13
          - stable-4.12
          - stable-4.11
          - stable-4.10
          - stable-4.9

    steps:
      - uses: actions/checkout@v6
      - uses: gap-actions/skeleton-gap-test@v2
        with:
          gap-branch: ${{ matrix.gap-branch }}
          codecov-token: ${{ secrets.CODECOV_TOKEN }}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions