Github Actions
GitHub Actions let's you automate, customize, and execute your software development workflows right in your repository.
Actions⚑
Checkout V2⚑
actions/checkoutis an action for checking out a repo.
Example usage:
jobs:
molecule:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: true
GitHub Action for GitHub Push⚑
ad-m/github-push-actionis a GitHub action to push back to repository eg. update code.
Example usage:
jobs:
molecule:
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: ${{ github.ref }}
This will push the commited changes to the current branch.
Configuration⚑
Concurrency⚑
You can use concurrency
to cancel any in-progress job or run. Example:
concurrency:
group: docs-${{ github.head_ref }}
cancel-in-progress: true
This is useful to cancel previous jobs if new commits are pushed, which saves minutes, energy and avoids conflicts when pushing changes during the action.
Secrets⚑
Store file as secret⚑
If you want to store a file (multiline, binary...) as a secret, first encode it with base64:
base64 -i < {{ file_path }} | tr -d '\n' | xclip -i -selection clipboard
Then paste it to a new secret. To restore the file diring the workflow, add:
- name: restore file
run: echo ${{ secrets.SECRET }} | base64 -d > {{ file_path }}
Steps⚑
Condition execution depending on another step outcome⚑
To allow a step to fail without that implying failing the whole workflow and then execute some steps according to the result, do:
- name: commitizen
id: commitizen
continue-on-error: true
uses: commitizen-tools/commitizen-action@0.11.0
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
- name: Some other task
if: steps.commitizen.outcome == 'success'
run: something