2022-11-03 18:10:38 +03:00
name : package
on :
pull_request :
workflow_dispatch :
workflow_call :
inputs :
branch :
description : "ref branch for this workflow"
default : "master"
required : true
type : string
env :
CARGO_TERM_COLOR : always
jobs :
package-generic-linux-x64 :
runs-on : ubuntu-18.04
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Install
run : |
bin/install_prerequisites_ubuntu.sh
bin/install_rust_latest.sh
- name : Build
run : |
bin/release/release.sh
echo "PATH=:${PWD}/target/release:$PATH" >> "${GITHUB_ENV}"
- name : Install Python 3.8
uses : actions/setup-python@v4
with :
python-version : '3.8'
- name : Install Curl 7.68
uses : myci-actions/add-deb-repo@10
with :
repo : deb http://azure.archive.ubuntu.com/ubuntu/ focal main restricted
repo-name : focal
install : curl
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Get version
run : |
VERSION=$(bin/release/get_version.sh)
echo "VERSION=${VERSION}" | tee -a "${GITHUB_ENV}"
- name : Create generic linux package
run : |
bin/release/man.sh
bin/release/create_tarball.sh linux
- name : Install package
run : |
bin/release/install_generic_linux_package.sh
echo "PATH=/tmp/hurl-generic-linux:$PATH" >> "${GITHUB_ENV}"
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Archive production artifacts
uses : actions/upload-artifact@v3
with :
name : release-generic-linux-x64-artifacts
path : target/upload/*
test-generic-linux-docker-debian-x64 :
needs : package-generic-linux-x64
runs-on : ubuntu-latest
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Retrieve release-generic-linux-x64-artifacts
uses : actions/download-artifact@v3
with :
name : release-generic-linux-x64-artifacts
path : target/upload
- name : Install package and tests integ
uses : addnab/docker-run-action@v3
with :
image : debian
options : --volume ${{ github.workspace }}:/work --workdir /work --privileged
run : |
2022-12-14 16:28:49 +03:00
set -e
2022-11-03 18:10:38 +03:00
echo "::group::Install system prerequisites"
bin/install_prerequisites_docker_ubuntu.sh
echo "::endgroup::"
echo "::group::Environment"
bin/environment.sh
echo "::endgroup::"
echo "::group::Install generic linux package"
bin/release/install_generic_linux_package.sh
export PATH="/tmp/hurl-generic-linux:$PATH"
echo "::endgroup::"
echo "::group::Install tests prerequisites"
bin/test/test_prerequisites.sh
echo "::endgroup::"
echo "::group::Tests"
bin/test/test_integ.sh
echo "::endgroup::"
- name : Archive production artifacts
uses : actions/upload-artifact@v3
if : ${{ always() }}
with :
name : test-generic-linux-package-docker-debian-x64-artifacts
path : |
integration/mitmdump.log
integration/server.log
integration/server-ssl.log
2022-12-14 16:28:49 +03:00
2022-11-03 18:10:38 +03:00
test-generic-linux-docker-archlinux-x64 :
needs : package-generic-linux-x64
runs-on : ubuntu-latest
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Retrieve release-generic-linux-x64-artifacts
uses : actions/download-artifact@v3
with :
name : release-generic-linux-x64-artifacts
path : target/upload
- name : Install package and tests integ
uses : addnab/docker-run-action@v3
with :
image : archlinux
options : --volume ${{ github.workspace }}:/work --workdir /work --privileged
run : |
2022-12-14 16:28:49 +03:00
set -e
2022-11-03 18:10:38 +03:00
echo "::group::Install system prerequisites"
bin/install_prerequisites_docker_archlinux.sh
echo "::endgroup::"
echo "::group::Environment"
bin/environment.sh
echo "::endgroup::"
echo "::group::Install generic linux package"
bin/release/install_generic_linux_package.sh
export PATH="/tmp/hurl-generic-linux:$PATH"
echo "::endgroup::"
echo "::group::Install tests prerequisites"
bin/test/test_prerequisites.sh
echo "::endgroup::"
echo "::group::Tests"
bin/test/test_integ.sh
echo "::endgroup::"
- name : Archive production artifacts
uses : actions/upload-artifact@v3
if : ${{ always() }}
with :
name : test-generic-linux-package-docker-archlinux-x64-artifacts
path : |
integration/mitmdump.log
integration/server.log
integration/server-ssl.log
2022-12-14 16:28:49 +03:00
2022-11-03 18:10:38 +03:00
test-generic-linux-docker-fedora-x64 :
needs : package-generic-linux-x64
runs-on : ubuntu-latest
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Retrieve release-generic-linux-x64-artifacts
uses : actions/download-artifact@v3
with :
name : release-generic-linux-x64-artifacts
path : target/upload
- name : Install package and tests integ
uses : addnab/docker-run-action@v3
with :
image : fedora
options : --volume ${{ github.workspace }}:/work --workdir /work --privileged
run : |
2022-12-14 16:28:49 +03:00
set -e
2022-11-03 18:10:38 +03:00
echo "::group::Install system prerequisites"
bin/install_prerequisites_docker_fedora.sh
echo "::endgroup::"
echo "::group::Environment"
bin/environment.sh
echo "::endgroup::"
echo "::group::Install generic linux package"
bin/release/install_generic_linux_package.sh
export PATH="/tmp/hurl-generic-linux:$PATH"
echo "::group::Install tests prerequisites"
echo "::endgroup::"
bin/test/test_prerequisites.sh
echo "::endgroup::"
echo "::group::Tests"
bin/test/test_integ.sh || true # to be fixed => "error in stderr actual: <hurl: /lib64/libcurl.so.4: no version information available (required by hurl)"
echo "::endgroup::"
- name : Archive production artifacts
uses : actions/upload-artifact@v3
if : ${{ always() }}
with :
name : test-generic-linux-package-docker-fedora-x64-artifacts
path : |
integration/mitmdump.log
integration/server.log
integration/server-ssl.log
2022-12-14 16:28:49 +03:00
2022-11-03 18:10:38 +03:00
package-deb-x64 :
runs-on : ubuntu-18.04
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Install
run : |
bin/install_prerequisites_ubuntu.sh
bin/install_rust_latest.sh
- name : Environment
run : bin/environment.sh
- name : Build
run : |
bin/release/release.sh
echo "PATH=:${PWD}/target/release:$PATH" >> "${GITHUB_ENV}"
- name : Install Python 3.8
uses : actions/setup-python@v4
with :
python-version : '3.8'
- name : Install Curl 7.68
uses : myci-actions/add-deb-repo@10
with :
repo : deb http://azure.archive.ubuntu.com/ubuntu/ focal main restricted
repo-name : focal
install : curl
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Get version
run : |
VERSION=$(bin/release/get_version.sh)
echo "VERSION=${VERSION}" | tee -a "${GITHUB_ENV}"
- name : Create deb package
run : |
bin/release/man.sh
bin/release/create_deb_package.sh
- name : Install package
run : |
bin/release/install_deb_package.sh
echo "PATH=/tmp/hurl-deb-package/usr/bin:$PATH" >> "${GITHUB_ENV}"
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Archive production artifacts
uses : actions/upload-artifact@v3
with :
name : release-deb-x64-artifacts
path : target/upload/*
package-macos-x64 :
runs-on : macos-latest
steps :
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
- name : Install Rust
run : bin/install_rust_latest.sh
- name : Install Python 3.8
uses : actions/setup-python@v4
with :
python-version : '3.8'
- name : Build
run : |
bin/release/release.sh
echo "PATH=:${PWD}/target/release:$PATH" >> "${GITHUB_ENV}"
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Get version
run : |
VERSION=$(bin/release/get_version.sh)
echo "VERSION=${VERSION}" | tee -a "${GITHUB_ENV}"
- name : Create generic macos package
run : |
bin/release/man.sh
bin/release/create_tarball.sh macos
- name : Install package
run : |
bin/release/install_generic_macos_package.sh
echo "PATH=/tmp/hurl-generic-macos:$PATH" >> "${GITHUB_ENV}"
- name : Test integ
run : |
bin/test/test_prerequisites.sh
bin/test/test_integ.sh
- name : Archive production artifacts
uses : actions/upload-artifact@v3
with :
name : release-macos-x64-artifacts
path : target/upload/*
package-windows-x64 :
runs-on : windows-latest
env :
VCPKGRS_DYNAMIC : 1
steps :
- name : Set git to use LF
run : |
git config --global core.autocrlf false
git config --global core.eol lf
- name : Checkout repository
uses : actions/checkout@v3
with :
ref : ${{ inputs.branch }}
2022-12-29 00:42:27 +03:00
# - name: Cache
# uses: actions/cache@v3
# with:
# path: C:\vcpkg\installed
# key: ${{ runner.os }}-release-windows-x64-${{ github.sha }}
# restore-keys: ${{ runner.os }}-release-windows-x64-
2022-11-03 18:10:38 +03:00
- name : Install Rust
uses : actions-rs/toolchain@v1
with :
toolchain : stable
override : true
profile : minimal
- name : Environment
run : .\bin\environment.ps1
- name : Install prerequisites
run : .\bin\install_prerequisites_windows.ps1
- name : Build and test integ
run : |
.\bin\release\release.ps1
.\bin\test\test_prerequisites.ps1
.\bin\test\test_integ.ps1
- name : Create windows64 Zip package
run : .\bin\release\create_windows64_zip_package.ps1
- name : Install win64 zip and test integ
run : |
.\bin\release\install_windows64_zip_package.ps1
.\bin\test\test_prerequisites.ps1
.\bin\test\test_integ.ps1
- name : Create windows64 installer
run : .\bin\release\create_windows64_installer.ps1
- name : Install win64 installer and test integ
run : |
.\bin\release\install_windows64_installer.ps1
.\bin\test\test_prerequisites.ps1
.\bin\test\test_integ.ps1
- name : Archive production artifacts
uses : actions/upload-artifact@v3
with :
name : release-windows-x64-artifacts
path : |
.\target\win-package\hurl-*-installer.exe
.\target\win-package\hurl-*-win64.zip