Skip to content

Gadget deploy

Actions
Deploy user scripts or gadgets to Wikimedia sites
v1.1.0
Latest
Star (5)

Tags

 (1)

deploy-action

GitHub Action to automate user script and gadget deployments to Wikimedia wikis.

Usage

  • Setup either a BotPassword or an owner-only OAuth2 credential for your user account, which will get used for updating the script pages.

    • Make sure the grant to allow editing your user CSS/JSON/JavaScript is checked.
  • Save the credentials to GitHub Secrets in your repo (either the OAUTH2_TOKEN, or the USERNAME and PASSWORD).

  • Add a file deploy.yml under .github/workflows, with the content:

name: 'deploy'
on:
  push:
    branches:
      - master
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      # Run build and ensure tests are passing before deployment
      - run: npm run --if-present build
      - run: npm run --if-present test
      - name: Deploy to Wikipedia 
        uses: wikimedia-gadgets/deploy-action@v1
        with:
          paths: 'src/myscript.js User:SD0001/myscript.js'
          apiUrl: 'https://en.wikipedia.org/w/api.php'
          
          oauth2Token: ${{ secrets.OAUTH2_TOKEN }}
          ### OR ###
          username: ${{ secrets.USERNAME }}
          password: ${{ secrets.PASSWORD }}

          # Optional, defaults to "Updating from repo at $BRANCH ($SHA)"
          # If provided, $BRANCH will be expanded to branch name, $SHA to 8-character SHA1, 
          # and $SOURCE to the source file path.
          # You can also use values from the context (https://docs.github.com/en/actions/learn-github-actions/contexts#github-context) 
          # such as ${{github.repository}} or ${{github.actor}}
          editSummary: ''

This action as written above will be triggered every time a commit is pushed to master branch. For alternative trigger mechanisms (such as triggering when a release is published), refer to GitHub docs.

Specifying paths

Specifying single path:

paths: 'src/myscript.js User:SD0001/myscript.js'

Format is repo path wiki page title. Note that the repo path itself cannot contain spaces.

Specifying multiple paths:

paths: |
  src/myscript.js User:SD0001/myscript.js
  src/mystyle.css User:SD0001/mystyle.css

Specifying multiple paths via wildcards:

paths: |
  src/*.js User:SD0001/*.js
  src/*.css User:SD0001/*.css

Gadget deploy is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Deploy user scripts or gadgets to Wikimedia sites
v1.1.0
Latest

Tags

 (1)

Gadget deploy is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.