Fix Git permission when generating source archives #9
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Release | |
on: | |
push: | |
tags: | |
- 'v*' | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_NAME: ${{ github.repository }} | |
jobs: | |
lints: | |
uses: ./.github/workflows/lint.yml | |
linux: | |
uses: ./.github/workflows/linux.yml | |
mac: | |
uses: ./.github/workflows/mac.yml | |
freebsd: | |
uses: ./.github/workflows/freebsd.yml | |
source: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/inko-lang/ci:fedora | |
needs: | |
- lints | |
- linux | |
- mac | |
- freebsd | |
env: | |
RCLONE_S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }} | |
RCLONE_S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }} | |
RCLONE_S3_ENDPOINT: https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- run: git config --global --add safe.directory $PWD | |
- name: Upload source archive | |
run: make release/source | |
- name: Update manifest | |
run: make release/manifest | |
container: | |
runs-on: ubuntu-latest | |
needs: | |
- lints | |
- linux | |
- mac | |
- freebsd | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: docker/login-action@v3 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- uses: docker/metadata-action@v5 | |
id: meta | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- uses: docker/build-push-action@v5 | |
with: | |
context: . | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
runtimes: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/inko-lang/ci:fedora | |
needs: | |
- lints | |
- linux | |
- mac | |
- freebsd | |
env: | |
RCLONE_S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }} | |
RCLONE_S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }} | |
RCLONE_S3_ENDPOINT: https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Upload runtimes | |
run: make runtimes | |
docs: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/inko-lang/inko:latest | |
needs: | |
- lints | |
- linux | |
- mac | |
- freebsd | |
- container | |
- runtimes | |
env: | |
RCLONE_S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }} | |
RCLONE_S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }} | |
RCLONE_S3_ENDPOINT: https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | |
steps: | |
- name: Install dependencies | |
run: microdnf install --quiet --assumeyes rclone git tar make | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
docs/build | |
~/.local/share/inko/packages | |
key: docs-release | |
- run: git config --global --add safe.directory $PWD | |
- name: Deploy the documentation | |
run: make docs/publish DOCS_FOLDER=${{ github.ref_name }} | |
- name: Update the latest tag | |
run: > | |
if [[ ${{ github.ref_name }} = $(git tag -l --sort=-v:refname | head -n1) ]] | |
then | |
make docs/publish DOCS_FOLDER=latest | |
fi | |
std-docs: | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/inko-lang/ci:idoc | |
env: | |
RCLONE_S3_ACCESS_KEY_ID: ${{ secrets.CLOUDFLARE_ACCESS_KEY_ID }} | |
RCLONE_S3_SECRET_ACCESS_KEY: ${{ secrets.CLOUDFLARE_SECRET_ACCESS_KEY }} | |
RCLONE_S3_ENDPOINT: https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com | |
needs: | |
- lints | |
- linux | |
- mac | |
- freebsd | |
- container | |
- runtimes | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/.local/share/inko/packages | |
key: std-docs-release | |
- run: git config --global --add safe.directory $PWD | |
- name: Deploy the documentation | |
run: make std-docs/publish DOCS_FOLDER=${{ github.ref_name }} | |
- name: Update the latest tag | |
run: > | |
if [[ ${{ github.ref_name }} = $(git tag -l --sort=-v:refname | head -n1) ]] | |
then | |
make std-docs/publish DOCS_FOLDER=latest | |
fi |