Skip to content

Release v0.15.0

Release v0.15.0 #8

Workflow file for this run

---
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
- 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