Skip to content

Refactor GitHub Actions workflow for cross-platform compatibility #8

Refactor GitHub Actions workflow for cross-platform compatibility

Refactor GitHub Actions workflow for cross-platform compatibility #8

Workflow file for this run

name: Test
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
arch: [amd64, arm64, 386]
exclude:
- os: windows-latest
arch: arm64
- os: macos-latest
arch: 386
env:
FISKALHRGO_TEST_CERT_PATH: ${{ secrets.FISKALHRGO_TEST_CERT_PATH }}
FISKALHRGO_TEST_CERT_PASSWORD: ${{ secrets.FISKALHRGO_TEST_CERT_PASSWORD }}
FISKALHRGO_TEST_CERT_OIB: ${{ secrets.FISKALHRGO_TEST_CERT_OIB }}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: 'stable'
- name: Set TEMP_DIR environment variable
run: echo "TEMP_DIR=$(mktemp -d)" >> $GITHUB_ENV
shell: bash
- name: Set TEMP_DIR environment variable for Windows
if: runner.os == 'Windows'
run: echo "TEMP_DIR=%TEMP%" >> $GITHUB_ENV
shell: cmd
- name: Decode and save the P12 certificate
run: |
go run -mod=mod - <<EOF
package main
import (
"encoding/base64"
"io/ioutil"
"os"
)
func main() {
data, err := base64.StdEncoding.DecodeString(os.Getenv("CIS_P12_BASE64"))
if err != nil {
panic(err)
}
err = ioutil.WriteFile(os.Getenv("TEMP_DIR")+"/fiskal.p12", data, 0644)
if err != nil {
panic(err)
}
}
EOF
env:
CIS_P12_BASE64: ${{ secrets.CIS_P12_BASE64 }}
- name: Build
run: go build -v ./...
- name: Test
run: go test -v ./...
env:
FISKALHRGO_TEST_CERT_PATH: $TEMP_DIR/fiskal.p12