zellij/.github/workflows/e2e.yml
har7an 46b9bc755e
Feature: simulate publishing (#2194)
* xtask: Add arguments to `publish`

that allow specifying a custom git remote to push to and a custom cargo
registry to publish packages to.

* xtask/publish: Don't release `xtask` subcrate

because it's not meant to be released at all.

* xtask/publish: Add status messages to publish

so we see what crate is currently being published, too.

* xtask/publish: Disable default features on `zellij`

because otherwise it tries to pick up the debug builds of the plugins,
which aren't part of released version of `zellij utils`.

* xtask/publish: Fix handling of custom registry

* docs: Add `RELEASE.md`

which explains how to simulate a zellij release.

* xtask: Apply rustfmt

* xtask: Remove `wasm-opt` from build steps

because recent versions cause havoc in the release process in GitHub
pipelines and it's primary goal is to only reduce binary size. Current
rust versions seem to produce very compact wasm binaries themselves,
though.

* .github: Don't install wasm-opt in workflows
2023-03-06 18:16:21 +00:00

54 lines
1.7 KiB
YAML

name: End to End tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
CARGO_TERM_COLOR: always
jobs:
test:
name: Build generic binary and run tests on it
runs-on: ubuntu-latest
environment: cachix
services:
ssh:
image: ghcr.io/linuxserver/openssh-server
env:
PUID: 1001
PGID: 1000
TZ: Europe/Vienna
PASSWORD_ACCESS: true
USER_PASSWORD: test
USER_NAME: test
ports:
- 2222:2222
options: -v ${{ github.workspace }}/target:/usr/src/zellij --name ssh
steps:
- uses: actions/checkout@v3
- name: Add WASM target
run: rustup target add wasm32-wasi
- name: Install musl-tools
run: sudo apt-get install -y --no-install-recommends musl-tools
- name: Add musl target
run: rustup target add x86_64-unknown-linux-musl
#run: cargo install --debug cargo-make
- name: Build asset
run: cargo xtask ci e2e --build
# we copy this manually into the target folder instead of mounting it because
# github actions creates the service first, and if it has a mount that is part
# of your yet unchecked out code, you cannot checkout the code after the mount
- name: Copy fixtures folder to target
run: cp -r ${{ github.workspace }}/src/tests/fixtures ${{ github.workspace }}/target
- name: Restart ssh container
# we need to do this because otherwise the volume will not be mounted
# on the docker container, since it was created before the folder existed
uses: docker://docker
with:
args: docker restart ssh
- name: Test
run: cargo xtask ci e2e --test