Skip to content

ci: upload appimage to r2 bucket #21

ci: upload appimage to r2 bucket

ci: upload appimage to r2 bucket #21

Workflow file for this run

name: Codetracer CI
on:
push:
branches:
- main
pull_request:
jobs:
lint-bash:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/bash.sh"
lint-nim:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/nim.sh"
lint-nix:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/nix.sh"
lint-rust:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/rust.sh"
lint-ui-tests:
runs-on: [self-hosted, nixos]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default -c ./ci/lint/ui-tests.sh"
dev-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/dev.sh"
nix-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/nix.sh"
appimage-build:
runs-on: [self-hosted, nixos]
needs:
- lint-bash
- lint-nim
- lint-nix
- lint-rust
- lint-ui-tests
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- name: Build
run: "nix develop .#devShells.x86_64-linux.default --command ./ci/build/appimage.sh"
- name: Upload artifact
# if: startsWith(github.ref, 'refs/tags/')
env:
AWS_ACCESS_KEY_ID: ${{ secrets.R2_CODETRACER_BUCKET_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.R2_CODETRACER_BUCKET_ACCESS_KEY }}
# run: |
# nix develop .#devShells.x86_64-linux.default --command aws --endpoint-url=${{ secrets.R2_CODETRACER_BUCKET_S3_ENDPOINT }} s3 cp CodeTracer.AppImage "s3://${{ secrets.R2_CODETRACER_BUCKET_NAME }}/CodeTracer-${{ github.ref_name }}-amd64.AppImage"
run: |
nix develop .#devShells.x86_64-linux.default --command "aws --endpoint-url=${{ secrets.R2_CODETRACER_BUCKET_S3_ENDPOINT }} s3 cp CodeTracer.AppImage s3://${{ secrets.R2_CODETRACER_BUCKET_NAME }}/CodeTracer-test-amd64.AppImage"
test-rust:
runs-on: [self-hosted, nixos]
needs:
- dev-build
- nix-build
- appimage-build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/test/rust.sh"
test-ui-tests:
runs-on: [self-hosted, nixos]
needs:
- dev-build
- nix-build
- appimage-build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/test/ui-tests.sh"
push-to-cachix:
runs-on: [self-hosted, nixos]
needs:
- test-rust
- test-ui-tests
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/deploy/build-nix-and-push-to-cachix.sh"
build-and-deploy-docs:
runs-on: [self-hosted, nixos]
needs: [push-to-cachix]
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Nix
uses: metacraft-labs/nixos-modules/.github/install-nix@main
with:
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
cachix-cache: ${{ vars.CACHIX_CACHE }}
trusted-public-keys: ${{ vars.TRUSTED_PUBLIC_KEYS }}
substituters: ${{ vars.SUBSTITUTERS }}
- run: "nix develop .#devShells.x86_64-linux.default --command ./ci/deploy/docs.sh"